0

目前我正在尝试使用配置文件来提供如下所示的 Unity 框架信息......

<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 加载类型 MyProjectsEnum,Version=1.1.0.0,Culture=neutral,PublicKeyToken=31bf33856ad364e35

我想我需要了解通过这个配置过程,除了简单类型之外,我可以通过 Unity 作为一种理解类型传递什么。

4

1 回答 1

2

You need to specify fully qualified type name for both 'parameterType' and 'type' attributes. Much the same you did for 'typeAlias' node. By default, Unity looks up its own assembly for unqualified types.

于 2009-04-23T12:27:00.067 回答