结构图4属性注入

时间:2016-04-22 09:43:13

标签: c# dependency-injection structuremap

我不知道为什么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属性我们声明接口。

1 个答案:

答案 0 :(得分:0)

我的问题的简单解决方案是使用.Setter:

_.For<IRssRepository>().Use<RssRepository>()
.Setter<IRequestRepository>().Is<RequestRepository>();