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