我不知道为什么setter属性现在可以工作,我已经配置了容器,但是如果这个属性为null则值为
container.Configure(_ =>
{
_.Policies.FillAllPropertiesOfType<IUserRepository>().Use<UserRepository>();
_.For<IRequestRepository>().Use<RequestRepository>()
.SetLifecycleTo(uniqueRequest);
_.For<IRssRepository>().Use<RssRepository>();
_.For<IUserRepository>().Use<UserRepository>();
});
然后在我想要的课程中使用这个属性:
[SetterProperty]
public IUserRepository UserRepository { get; set; }
也许问题是我在UserRepository中有构造函数吗?
private readonly IRequestRepository _repository;
public UserRepository(IRequestRepository repository)
{
_repository = repository;
}
还有问题,在结构图文档中我们注入接口,为什么不上课?我的意思是在构造函数和setter属性我们声明接口。
答案 0 :(得分:0)
我的问题的简单解决方案是使用.Setter:
_.For<IRssRepository>().Use<RssRepository>()
.Setter<IRequestRepository>().Is<RequestRepository>();