1
我正在使用一些舊的asp.net網頁形式頁面,並試圖讓DI工作,但遇到了一些問題,一些對象沒有被創建,所以我的目的是在後面的代碼中執行一個懶惰的實現。SimpleInjector惰性通用註冊
我有以下登記在該網站的其他工作:
container.Register(typeof(IDataFactory<,>), new[] { typeof(SqlAccountFactory).Assembly });
爲了讓懶方面我都試過
container.Register<Lazy<IDataFactory<SqlAccountFactory, int>>>(
() => new Lazy<IDataFactory<SqlAccountFactory, int>>(
container.GetInstance<IDataFactory<SqlAccountFactory, int>>));
這樣做的結果是,該屬性沒有得到填充。
屬性,代碼頁的背後(高於此描述不使用懶惰時有效):
[Dependency]
public Lazy<IDataFactory<SqlAccountFactory, int>> ProjectCodesRepository;
僅供參考我使用的代碼的文檔來填充代碼屁股屬性標記屬性和所有的作品都很好,禁止上面的懶註冊。
是否有人能夠幫助或發現我做過的傻事?
解決了我的問題,我糾正了試圖修復註冊的財產。添加AttributeUsage將會在將來阻止它;謝謝! –
請注意,依賴關係通常是一個糟糕的主意,因爲它是'懶惰的'。對象的創建應該非常快,因爲ctors不應該只是存儲它們的依賴關係。 –
Steven