Asp.net-Mvc-4

屬性參數必須是屬性參數類型的常量表達式、typeof 表達式或數組創建表達式

  • October 12, 2020

我想將組名稱分配為授權過濾器的屬性。

它將採取如下方式

[FilterConfig.AuthorizeAd(Group = "DirectoryName")]
 public ActionResult GetData()
  {
  }  

我嘗試了硬編碼,如下添加

[FilterConfig.AuthorizeAd(Group = Constants.ActiveDirectoryName)]

其中 Constants 是類和創建的成員,如下所示:

public const  string ActiveDirectoryName = "directoryName";

現在我想從 app.config 中獲取它,嘗試如下

[FilterConfig.AuthorizeAd(Group = ConfigurationManager.AppSettings["Directory_Name"].ToString()

它通過錯誤消息作為“屬性參數必須是常量表達式”

如何從配置中分配數據?請給我建議。

您不能使用屬性來做到這一點,它們必須是錯誤消息中所述的常量。如果你想從配置文件中獲取一個值,你可以通過將鍵傳遞給屬性,然後在建構子中從配置管理器中獲取你想要的值

   public MyAttribute :Attribute
   {
       private string _config;
       public MyAttribute(string configKey)
       {
           _config = ConfigurationManager.AppSettings[configKey];

           ...
       }
   }

高溫高壓

引用自:https://stackoverflow.com/questions/31481820