0
我的情況是:我的項目StructureMap規則
兩個不同的部分(ASP.NET MVC領域)需要相同的構造器注入的辛格爾頓,但不同的情況設置略有不同。
例如
地盤面積=自己的單身
管理區=自己的單身
難道這通過StructureMap能實現嗎?項目的各個部分位於不同的名稱空間中。
我的情況是:我的項目StructureMap規則
兩個不同的部分(ASP.NET MVC領域)需要相同的構造器注入的辛格爾頓,但不同的情況設置略有不同。
例如
地盤面積=自己的單身
管理區=自己的單身
難道這通過StructureMap能實現嗎?項目的各個部分位於不同的名稱空間中。
如果您將一個單例作爲默認值,將一個作爲命名實例,則可以執行此操作。在這些地方,您需要命名實例,將您的依賴關係映射到使用命名實例而不是默認實例。
Container container = new Container(x => {
x.For<ISomeDependency>().Singleton().Use<SomeDependency>(); // User
x.For<ISomeDependency>().Singleton().Add<SomeDependency>().Named("admin");
});
在上面的例子中「使用<>」,標誌着默認,而「添加<>」被添加命名實例。
這將讓你默認:
container.GetInstance<ISomeDependency>();
雖然這一個會得到您的命名實例:
container.GetInstance<ISomeDependency>("admin");
我不知道如果我得到你的問題。 Site Area是否需要SomeDependency和Admin需要另一種類型的SomeDependency,並且SomeDependency都應該是單例?還是說,網站區和管理區都是單身人士,需要與單身人士相同的依賴關係? – Bassetassen
第一。管理員和網站需要不同的SomeDependency作爲單身人士。 – Phil