如何配置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文件: