C# 结构图4属性注入

C# 结构图4属性注入,c#,dependency-injection,structuremap,C#,Dependency Injection,Structuremap,我不明白为什么setter属性现在可以工作,我已经配置了container,但是如果这个属性为null,则返回值 container.Configure(_ => { _.Policies.FillAllPropertiesOfType<IUserRepository>().Use<UserRepository>(); _.For<IRequestRepository>().Use<RequestRepository>()

我不明白为什么setter属性现在可以工作,我已经配置了container,但是如果这个属性为null,则返回值

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();