MVC 5应用程序设置

时间:2014-07-29 15:13:32

标签: c# asp.net-mvc

所以我想在应用程序中存储一些设置,我只能读取它们(我认为这几乎就是这个想法)。

如何注入阅读器,我不完全确定如何首先阅读应用程序设置,或者它是否已经有注入界面。

我要么想要这样的东西:

public interface IPropertyService
{
    string ReadProperty(string key);
}

然后实施:

public class DefaultPropertyService : IPropertyService
{
    public string ReadProperty(string key)
    {
        // what ever code that needs to go here
        // to call the application settings reader etc.

        return ApplicationSetting[key];
    }
}

关于这个主题的任何帮助都会很棒

2 个答案:

答案 0 :(得分:5)

您在哪里试图存储应用程序设置? Web.Config的appSettings部分不够用吗?

<appSettings>
  <add key="someSetting" value="SomeValue"/>
</appSettings>

然后以这种方式阅读你的设置

ConfigurationManager.AppSettings["someSetting"]

答案 1 :(得分:2)

你有正确的想法,而你基本上就在那里。对于Web,配置设置存储在Web.Config节点下的AppSettings中。您可以使用ConfigurationManager.AppSettings访问代码中的内容。以下是访问配置的可注入服务的示例实现。

public interface IPropertyService {

    string ReadProperty(string key);

    bool HasProperty(string key);

} // end interface IPropertyService

public class WebConfigurationPropertyService : IPropertyService {

    public WebConfigurationPropertyService() {

    } // end constructor

    public virtual bool HasProperty(string key) {
        return !String.IsNullOrWhiteSpace(key) && ConfigurationManager.AppSettings.AllKeys.Select((string x) => x).Contains(key);
    } // end method HasProperty

    public virtual string ReadProperty(string key) {
        string returnValue = String.Empty;
        if(this.HasProperty(key)) {
            returnValue = ConfigurationManager.AppSettings[key];
        } // end if
        return returnValue;
    } // end method ReadProperty

} // end class WebconfigurationPropertyService