【发布时间】:2014-09-04 22:21:59
【问题描述】:
我正在将应用程序从 Ninject 迁移到 Autofac。
我们使用特殊的命名约定将应用设置注入构造函数:
public class Example{
public Example(AppSetting settingName){
...
}
}
AppSetting 参数是使用 ConfigurationManager.AppSettings["settingName"] 自动注入的。
在 Ninject 中,这是通过使用自定义提供程序完成的:
public class AppSettingProvider : Ninject.Activation.IProvider
{
public object Create(IContext context)
{
var varName = ((Context)context).Request.Target.Name;
var value = new AppSetting(ConfigurationManager.AppSettings[varName]);
if (value.Value == null)
{
... log ...
}
return value;
}
public Type Type
{
get { return typeof(AppSetting); }
}
}
我无法在 Autofac 中找到此功能的替代方案。如果这无法以自动化方式实现,我可以在初始配置步骤中循环遍历所有应用设置。
知道该怎么做吗?
谢谢, 恶灵
【问题讨论】:
标签: c# dependency-injection autofac