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