2009-04-07 3 views
0

現在、私はユニティフレームワークにこのように見えるの情報を提供するために設定ファイルを使用しようとしています...ユニティFrameworkのコンテナ型のコンストラクタのparamの型

<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のようなものを選択して、私の具体的なクラスが持っている場合文字列のconstrutorは、この設定ファイル情報は素晴らしい作品です。現時点では私は

組立Microsoft.Practices.Unity.ConfigurationからタイプMyProjectsEnum、バージョン= 1.1.0.0をロードできませんでした、文化=中立... Unityは、このようなエラーがスローされます文字列の代わりにEnumを使用することを選択します、PublicKeyToken = 31bf33856ad364e35

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

+0

MyProjectsEnumは名前空間にありますか?完全修飾されたContainingNamespace.MyProjectsEnumである必要があります。私は実際には考えているだけで、ただの考えです。 – AaronLS

答えて

2

「parameterType」属性と「type」属性の両方に完全修飾タイプ名を指定する必要があります。あなたは 'typeAlias'ノードの場合とほとんど同じです。デフォルトでは、Unityは非修飾型に対して独自のアセンブリを検索します。

関連する問題