0

現在、構成ファイルを使用して、次のような 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 のこの構成ファイル情報がうまく機能します。文字列の代わりにを使用することを選択した瞬間、EnumUnity はこのようなエラーをスローします...

アセンブリ Microsoft.Practices.Unity.Configuration、Version=1.1.0.0、Culture=neutral、PublicKeyToken=31bf33856ad364e35 から型 MyProjectsEnum を読み込めませんでした

この構成プロセスを通じて、単純な型を超えて、Unity によって理解される型として何を渡すことができるかを理解する必要があると思います。

4

1 に答える 1

2

「parameterType」属性と「type」属性の両方に完全修飾型名を指定する必要があります。「typeAlias」ノードで行ったのとほぼ同じです。デフォルトでは、Unity は修飾されていない型について独自のアセンブリを検索します。

于 2009-04-23T12:27:00.067 に答える