gpt4 book ai didi

c# - 如何配置统一容器以提供字符串构造函数值?

转载 作者:可可西里 更新时间:2023-11-01 02:58:54 24 4
gpt4 key购买 nike

这是我的爸爸类(class)

 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<Dad>();
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<Dad>(
new InjectionConstructor("chris"));

或通过 app/web.config 文件:

<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
</configSections>

<unity>
<containers>
<container>
<register type="System.String, MyProject">
<constructor>
<param name="name" value="chris" />
</constructor>
</register >
</container>
</containers>
</unity>

关于c# - 如何配置统一容器以提供字符串构造函数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17391122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com