C# 结构图4属性注入
我不明白为什么setter属性现在可以工作,我已经配置了container,但是如果这个属性为null,则返回值C# 结构图4属性注入,c#,dependency-injection,structuremap,C#,Dependency Injection,Structuremap,我不明白为什么setter属性现在可以工作,我已经配置了container,但是如果这个属性为null,则返回值 container.Configure(_ => { _.Policies.FillAllPropertiesOfType<IUserRepository>().Use<UserRepository>(); _.For<IRequestRepository>().Use<RequestRepository>()
container.Configure(_ =>
{
_.Policies.FillAllPropertiesOfType<IUserRepository>().Use<UserRepository>();
_.For<IRequestRepository>().Use<RequestRepository>()
.SetLifecycleTo(uniqueRequest);
_.For<IRssRepository>().Use<RssRepository>();
_.For<IUserRepository>().Use<UserRepository>();
});
也许问题是我在UserRepository中使用了构造函数
private readonly IRequestRepository _repository;
public UserRepository(IRequestRepository repository)
{
_repository = repository;
}
还有一个问题,在结构图文档中,我们注入了接口,为什么不使用类呢?我的意思是在构造函数和setter属性中,我们声明了接口 我的问题的简单解决方案是使用。Setter:
_.For<IRssRepository>().Use<RssRepository>()
.Setter<IRequestRepository>().Is<RequestRepository>();
\uu.For().Use()
.Setter().Is();
解决我的问题的简单方法是使用。Setter:
_.For<IRssRepository>().Use<RssRepository>()
.Setter<IRequestRepository>().Is<RequestRepository>();
\uu.For().Use()
.Setter().Is();