在静态上下文中访问配置设置

时间:2015-05-14 18:32:38

标签: c# asp.net

可以在静态上下文中访问配置设置值吗?

例如,这里是代码,它以红线表示一行“无法访问静态上下文中的非静态属性'设置'。”我需要的只是设置的价值。

namespace MyCompany.Sample.EmailConnector.Provider.Implementation
{
    class GmailEmailConnectorProvider : EmailConnectorProvider
    {
        private string clientSecret = Settings.ClientSecret; // Here is the error
                                         ^^

        public override Email SendTestEmail(string address, string message)
        {
            throw new NotImplementedException();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您无法在字段初始值设定项中访问对象的属性。您需要将初始化移动到构造函数

class GmailEmailConnectorProvider : EmailConnectorProvider
{
    private string clientSecret;

    public GmailEmailConnectorProvider()
    {
        clientSecret = Settings.ClientSecret;
    }
}

此外,如果Settings是虚拟的,那么执行此操作(从构造函数访问属性)通常不是一个好主意,除非您密封GmailEmailConnectorProvider或者您确定什么都不会继承自它

答案 1 :(得分:0)

您还可以使用Default静态属性:

private string clientSecret = Settings.Default.ClientSecret;