0
我有下面的類:註冊爲智力KeyFilter與autofac
public class A
{
private string name;
private int id;
public A([KeyFilter("name")] string name, [KeyFilter("id")] int id)
{
this.name = name;
this.id = id;
}
}
我想用autofac注入的依賴關係。這兩個參數都將從配置文件中獲取。 這裏是我的代碼來初始化類。
public IContainer Initialize()
{
ContainerBuilder builder = new ContainerBuilder();
string name = ConfigurationManager.AppSettings["Name"];
builder.RegisterInstance(name).Keyed<string>("name");
int id = int.Parse(ConfigurationManager.AppSettings["Id"]);
builder.RegisterInstance(id).Keyed<int>("id");
builder.RegisterType<A>().WithAttributeFiltering();
return builder.Build();
}
上面的代碼不編譯由於錯誤「int類型必須是爲了用它作爲參數T引用類型...」。 我意識到,我需要另一種機制注入整數。我試過其他功能從生成器,甚至autofac文檔中做了一個研究沒有運氣。這裏
一個解決辦法是期待一個字符串ID(而不是INT ID)的注入作爲串並最終解析它的A類裏面,但我不喜歡這樣的解決方案那麼多。 有什麼建議嗎?
謝謝,這樣做的伎倆。我讀了另一篇文章,並理解爲什麼我不能註冊一個結構。 – afonte