我正在使用 Unity 框架作为 IoC 容器。
我的配置看起来像这样:
<unity>
<container>
<register type="Namespace1.IFoo, FooAsm"
mapTo="Namespace2.Bar, BarAsm">
</register>
</conainer>
我想注册一个容器来使用工厂方法。我如何使用 app.config 实现它?
我正在寻找这样的东西:
<unity>
<container>
<register type="Namespace1.IFoo, FooAsm"
factory="Namespace2.Bar, BarAsm"
method="create">
</register>
</conainer>
</unity>
有什么建议吗?
最佳答案
This thread对如何为 Unity 添加工厂方法支持提供了很好的回应。事实上你必须下载this bitbucket源(并将引用更改为 4.0 框架)。
如果您现在添加 Generic support for Unity你会得到一个非常棒的解决方案,可能看起来像这样:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"/>
</configSections>
<unity xmlns="schemas.microsoft.com/practices/2010/unity">
<sectionExtension type="Unity.FactoryConfig.FactoryConfigExtension, Unity.FactoryConfig"/>
<alias alias="Factory" type="Namespace1.GenericFactory`1, asm1"/>
<container>
<register type="Namespace1.ITest, asm1">
<factory type="Factory[[Namespace1.ITest, asm1]]" method="Create" />
</register>
</container>
</unity>
</configuration>
使用 xml 配置支持统一框架的通用工厂!
感谢所有评论:)
关于c# - Unity - 通过 XML 的工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9943216/