2
我使用Ninject廠擴展和創建一個自定義實例提供在維基解釋我已經創建了以下綁定:Ninject廠自定義實例提供
kernel.Bind<IFooFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider());
kernel.Bind<IFoo>().To<FooBar>().Named("Foo");
現在,當我打電話給以下時,我將獲得一個實例FooBar
:
var foobar = fooFactory.NewFoo("Foo");
這一切都很好。什麼不過,我想是的東西多一點這樣的:
interface IFooTemplateRepository
{
Template GetTemplate(string template);
}
我有一個倉庫,將帶回基於名稱(「富」)一個模板,我想通過模板的構造函數參數。
public class FooBar
{
public FooBar(Template template)
{
}
}
這可能嗎?我不知道什麼應該有依賴於ITemplateRepository。
我覺得我是在過度推銷它。我大概可以創建一個自定義提供程序,將第一個參數轉換爲模板並檢查其上的屬性以確定要創建的命名實例。 – Dismissile 2012-04-03 13:52:03