如何配置unity容器来提供字符串构造函数值?

这是我dad

  public class Dad { public string Name { get;set; } public Dad(string name) { Name = name; } } 

这是我的测试方法

 public void TestDad() { UnityContainer DadContainer= new UnityContainer(); Dad newdad = DadContainer.Resolve(); newdad.Name = "chris"; Assert.AreEqual(newdad.Name,"chris"); } 

这是我得到的错误

 "InvalidOperationException - the type String cannot be constructed. You must configure the container to supply this value" 

如何配置我的DadContainer以使此断言通过? 谢谢

你应该提供一个无参数的构造函数:

 public class Dad { public string Name { get; set; } public Dad() { } public Dad(string name) { Name = name; } } 

如果您不能提供无参数构造函数,则需要配置容器以提供它,方法是直接将其注册到容器:

 UnityContainer DadContainer = new UnityContainer(); DadContainer.RegisterType( new InjectionConstructor("chris")); 

或者通过app / web.config文件: