我希望能夠使用發送給構造函數的默認參數來解析類,但是我希望能夠在指定參數時覆蓋此類。具有默認參數的Autofac類 - >覆蓋att運行時
這是我如何註冊:
builder.RegisterType<SearchService<WebPage>>().As<ISearchService<WebPage>>().WithParameter(
new NamedParameter("solrUrl", ConfigurationManager.AppSettings["UrlWeb"])).SingleInstance();
builder.RegisterType<SearchService<Document>>().As<ISearchService<Document>>().WithParameter(
new NamedParameter("Url", ConfigurationManager.AppSettings["solrUrlDocs"])).SingleInstance();
要解決我想能夠這樣:
_containerProvider.RequestLifetime.Resolve<ISearchService<WebPage>();
其做工精良,但我也希望能夠做到這一點:
_containerProvider.RequestLifetime.Resolve<ISearchService<WebPage>(new NamedParameter("Url", "some other url"));
這不起作用..所以我的問題是,如果有可能使用默認參數註冊我希望能夠在運行時重寫?
在你登記'SearchService'的參數被命名爲'solrUrl'。我想當你解決你應該使用相同的名字'solrUrl'。但是,您正在使用「Url」,它是「SearchService 」註冊的參數名稱。 Autofac使用反射來確定參數名稱,所以它們必須按照它們在類構造函數中的名稱進行命名http://code.google.com/p/autofac/wiki/ResolveParameters –
bentayloruk
2011-05-31 14:27:30