目前我正在尝试使用配置文件来提供类似于此的Unity Framework信息......
<configuration>
<unity>
<typeAliases>
<typeAlias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity, Culture=neutral, Version=1.1.0.0, PublicKeyToken=31bf3856ad364e35" />
</typeAliases>
<containers>
<container>
<types>
<type type="Common.ISharedConfiguration, Common, Version=3.1.0.0, Culture=neutral, PublicKeyToken=1111111111111111" mapTo="Common.SharedConfigurationManager, Common, Version=3.1.0.0, Culture=neutral, PublicKeyToken=1111111111111111">
<lifetime type="singleton" />
<typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<constructor>
<param name="OurEnumChoice" parameterType="MyProjectsEnum" >
<value value="MyProjectsEnum.OurFirstConstant" type="MyProjectsEnum"/>
</param>
</constructor>
</typeConfig>
</type>
</types>
</container>
</containers>
</unity>
</configuration>
如果我选择System.String
这样的东西并让我的具体类有一个字符串的构造,那么Unity的配置文件信息很有用。我选择使用Enum
代替字符串Unity的那一刻会抛出这样的错误......
无法从程序集Microsoft.Practices.Unity.Configuration,Version = 1.1.0.0,Culture = neutral,PublicKeyToken = 31bf33856ad364e35
加载MyProjectsEnum类型
我认为我需要通过这个配置过程理解Unity可以通过简单类型将其作为理解类型传递的内容。
答案 0 :(得分:2)
您需要为'parameterType'和'type'属性指定完全限定的类型名称。你为'typeAlias'节点做的大致相同。默认情况下,Unity会为不合格的类型查找自己的程序集。