1

我是 Ninject 的新手,我有一个非常简单的要求,但我在 Ninject 的文档中找不到我想要的确切内容。

我有这样的课:

public class User 
{
    public string Name {get;set;}
    ...
    public ICollection<Address> Addresses {get; protected set;}
}

public class Address
{
    public string Street {get;set;}
    ...
}

因此,我的测试类设置需要实例化一个用户以用于许多测试。

[TestClass]
public class UserTest
{
    User _myUser;

    [TestInitialize]
    public void Setup()
    {
        _myUser = new User();
        _myUser.Addresses.Add(new Address { Street = "Evergreen" }); // <-- Here I need Addresses must be Instantiated as, lets say, List<T>
    }
}

我需要的是_myUser.Addresses注入一个集合的实例。我不知道如何使用 Ninject 来实现这一点。你能为我指出正确的方向吗?

4

2 回答 2

1

不应该为此需要 Ninject。你可以在你的模型中做这样的事情。

private ICollection<Address> _addresses;
public ICollection<Address> Addresses
{
    get { return _addresses ?? (_addresses = new HashSet<Address>()); }
    protected set { _addresses = value; }
}

当我宁愿默认有一个空集合而不是空值时,这就是我在模型中所做的。

于 2013-05-28T17:15:23.567 回答
0

您需要的是“Property Setter Injection”,Ninject 在其 wiki 中有一个带有示例的帮助页面。

于 2013-05-28T17:12:41.180 回答