可以在静态上下文中访问配置设置值吗?
例如,这里是代码,它以红线表示一行“无法访问静态上下文中的非静态属性'设置'。”我需要的只是设置的价值。
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();
}
}
}
答案 0 :(得分:1)
您无法在字段初始值设定项中访问对象的属性。您需要将初始化移动到构造函数
class GmailEmailConnectorProvider : EmailConnectorProvider
{
private string clientSecret;
public GmailEmailConnectorProvider()
{
clientSecret = Settings.ClientSecret;
}
}
此外,如果Settings
是虚拟的,那么执行此操作(从构造函数访问属性)通常不是一个好主意,除非您密封GmailEmailConnectorProvider
或者您确定什么都不会继承自它
答案 1 :(得分:0)
您还可以使用Default
静态属性:
private string clientSecret = Settings.Default.ClientSecret;