【发布时间】:2015-07-13 23:42:42
【问题描述】:
我有一个 Autofac DI 容器并使用构造函数注入将配置设置注入我的 SampleClass。 Configuration Manager 类创建为 singleInstance,因此使用相同的单个实例。
public ConfigurationManager()
{
// Load the configuration settings
GetConfigurationSettings();
}
public SampleClass(IConfigurationManager configurationManager)
{
_configurationManager = configurationManager;
}
我正在从配置管理器的构造函数中的 App.config 文件加载配置设置。我的问题是我也在验证配置设置,如果它们不在 App.config 文件中,则会引发异常,从而导致程序崩溃。这意味着我无法处理异常并返回响应。
我做错了吗?有没有更好的方法来加载配置设置或者有没有办法处理抛出的异常。
编辑
ConfigurationManager configurationManager = new ConfigurationManager();
configurationManager.GetConfigurationSettings();
//Try catch around for the exception thrown if config settings fail
//Register the instance above with autofac
builder.Register(configurationManager()).As<IConfigurationManager>().SingleInstance();
//Old way of registering the configurationManager
builder.Register(c => new ConfigurationManager()).As<IConfigurationManager>().SingleInstance();
【问题讨论】:
-
细节太少了。解决方案取决于你初始化容器的方式,解析
SampleClass,使用它等等。如果你处理异步、同步或多线程,很难给出一个通用的建议。
标签: dependency-injection autofac