我幾乎想要做什麼這傢伙描述(傳遞依賴到自定義屬性):如何使用StructureMap(4.0)將依賴項注入到自定義屬性中? MVC5項目
How to use dependency injection with an attribute?
不過,我想與StructureMap 4.0,不Ninject去做。
我的項目是建立在我的Data Layer
DLL中的自定義屬性,和我已經有StructureMap在我UI Layer
安裝和工作與我的控制器。
我已經決定,我可能必須做二傳手注射StructureMap:
http://docs.structuremap.net/ConstructorAndSetterInjection.htm
但是,沒有正確與數據層我的自定義屬性爲我工作。
我計算過,爲了使事情的工作,我應該安裝Structuremap到我的數據層爲好,把這個IoC.cs:
public static IContainer Initialize()
{
Container container = new Container(x =>
{
x.ForConcreteType<My_AuthorizeADAttribute>().Configure.Setter<My_AppDataContext>().IsTheDefault(); //not sure about this line
});
return container;
}
哦..我的自定義屬性:
public class My_AuthorizeADAttribute : AuthorizeAttribute
{
public IMy_Data_Context _dataContext;
[SetterProperty]
public IMy_Data_Context DataContext
{
get { return _dataContext; }
set { _dataContext = value; }
}
這是正確的做法嗎?我想我離開了一步。 (但後來我還沒有真正在同一個項目中的多個dll上設置Structuremap,想知道是否有多個具有StructureMap的項目需要更多的東西
目前,應用程序將運行,但自定義屬性將不填充
更新:這個StackOverflow的問題是有幫助的:
How do I get StructureMap working with an AngularJs/MVC5 and WebApi2 web project
hmmm ..SetterDependency沒有出現。 (這不是一個選項)。有沒有我需要的參考? – Kevin
好吧,我假設將.SetterDependency改爲.Setter是恰當的術語,因爲對4.0代碼的審查不會在任何地方顯示.SetterDependency。他們的新文檔也在這裏: http://structuremap.github.io/setter-injection/ 不幸的是,它仍然無法正常工作。在每個dll中都有一個IoC.cs文件,以設置多個項目的正確方式? – Kevin