c# - 如何使用 Unity 从配置文件注入(inject)构造函数参数

标签 c# .net dependency-injection unity-container

假设我们有一个类

public class MyClass
{
    private string _val;
    public MyClass(string val) 
    {
         _val = val;
    }
}

和 app.config(或 web.config)

<appSettings>
    <add key="value" value="some value" />
</appSettings>

有没有办法在 Unity 容器中注册类型 MyClass 并指向 Unity 从配置文件中为 val 构造函数参数注入(inject)值?

最佳答案

这很容易。

C#代码:

var container = new UnityContainer();
container.LoadConfiguration();
MyClass mc = container.Resolve<MyClass>();

配置文件:

<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">    
 <container>
  <register type="[namespace].MyClass, [assembly-name]" 
    mapTo="[namespace].MyClass, [assembly-name]">
    <constructor>
      <param name="val" value="Ethan Woo"/>
    </constructor>
  </register>
</container>

关于c# - 如何使用 Unity 从配置文件注入(inject)构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188258/

相关文章:

c# - 有没有办法根据 C# 对象的属性自动形成长 MySql INSERT 命令?

c# - 如何在不使用 new 关键字的情况下在 C# 中扩展数组

c# - 如何将字符串格式化为越南货币?

c# - 允许进程自动继续的 MessageBox

.net - 自动更新 .NET 应用程序

c# - 依赖注入(inject) - 当前上下文中不存在名称 'Bind' - MethodAccessException 未处理

dependency-injection - 使用隐式自绑定(bind)时 Ninject 选择无参数构造函数

c# - 计算给定距离、方位、起点的端点

c# - 需要模拟用户访问网络资源,Asp.Net 帐户

java - Spring DI NullPointerException @Autowired 失败