1
我有多個屬性我想應用在控制器上,我需要按順序調用它們,因爲如果第一個屬性執行,我初始化下列屬性將使用的變量。我的屬性C#多個屬性調用序列
[AuthorizeLicense]
[MerchantLoggedIn]
[MerchantAuthorize]
public class MerchantController : BaseController
{
}
定義
public class AuthorizeLicense:AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if(somecondition is true){
//initialize variables for next attribute use;
}
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
}
}
下一個屬性
public class MerchantLoggedIn:AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//use initialize variables from previous attribute
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
}
}
我面臨的挑戰是,屬性不是序列中被稱爲我已經在類中定義它們;即從上到下。 請幫忙..我做錯了什麼。
聽起來像壞了設計對我來說,如果屬性只能當另一個也已設置,那麼你可以將其封裝成任何後者辦法。如果任何開發人員只提供一個屬性,你在做什麼? – HimBromBeere
只是大聲思考,但你能否將其他2個屬性作爲參數傳遞給第一個屬性,但是如果我誠實地說我不喜歡這個想法或屬性取決於對方。編輯。 HimBromBeere擊敗了我 – Matt
如果MerchantLoggedIn始終需要AuthorizeLicense,那麼您可以從AuthorizeLicense繼承並使用one屬性。 – Mant101