2011-11-08 10 views
5

プリズム2.0からプリズム4.0にプロジェクトをアップグレードするだけで、Unityに問題があります。明らかにunity 2.0コンテナのXML設定にはいくつかの変更があります。最初のエラー「Unrecognized element 'typeConfig'」があります。ここでは、コードは次のようになります。Unity 2.0のXML設定の変更

// ----------------------- App.configを

<configSections> 
    <section name="runDataParserConfiguration" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" /> 
    </configSections> 
    <runDataParserConfiguration> 
    <typeAliases> 
     <typeAlias alias="IRunDataDispatcher" type="RunDataParser.Interface.IRunDataDispatcher, RunDataParser.Interface" /> 
     <typeAlias alias="IRunDataParser" type="RunDataParser.Interface.IRunDataParser, RunDataParser.Interface" /> 
     <typeAlias alias="IRunDataParserArray" type="RunDataParser.Interface.IRunDataParser[], RunDataParser.Interface" /> 
     <typeAlias alias="Dispatcher" type="RunDataParser.Common.Dispatcher, RunDataParser.Common" /> 
     <typeAlias alias="Parser1" type="RunDataParser.Parser1, RunDataParser" /> 
     <typeAlias alias="Parser2" type="RunDataParser.Parser2, RunDataParser" /> 
     <typeAlias alias="Parser3" type="RunDataParser.Parser3,RunDataParser" /> 
     <typeAlias alias="Parser4" type="RunDataParser.Parser4, RunDataParser" /> 
     <typeAlias alias="Parser5" type="RunDataParser.Parser5, RunDataParser" /> 
     <typeAlias alias="Parser6" type="RunDataParser.Parser6, RunDataParser" /> 
     <typeAlias alias="Parser7" type="RunDataParser.Parser7, RunDataParser" /> 
     <typeAlias alias="Parser8" type="RunDataParser.Parser8, RunDataParser" /> 
     <typeAlias alias="Parser9" type="RunDataParser.Parser9, RunDataParser" /> 
    </typeAliases> 
    <containers> 
     <container> 
     <types> 
      <type type="IRunDataParser" mapTo="Parser1" name="parser1" /> 
      <type type="IRunDataParser" mapTo="Parser2" name="parser2" /> 
      <type type="IRunDataParser" mapTo="Parser3" name="parser3" /> 
      <type type="IRunDataParser" mapTo="Parser4" name="parser4" /> 
      <type type="IRunDataParser" mapTo="Parser5" name="parser5" /> 
      <type type="IRunDataParser" mapTo="Parser6" name="parser6" /> 
      <type type="IRunDataParser" mapTo="Parser7" name="parser7" /> 
      <type type="IRunDataParser" mapTo="Parser8" name="parser8" /> 
      <type type="IRunDataParser" mapTo="Parser9" name="parser9" /> 
      <type type="IRunDataDispatcher" mapTo="Dispatcher" name="runDataDispatcher" /> 
      <type type="Presentation.RawDataManagement.Wrapper.ParserDispatcherWrapper, RawDataManagement"> 
      <typeConfig> 
       <constructor> 
       <param name="runDataDispatcher" parameterType="Dispatcher" /> 
       <param name="runDataParsers" parameterType="IRunDataParserArray"> 
        <array> 
        <dependency name="parser1" /> 
        <dependency name="parser2" /> 
        <dependency name="parser3" /> 
        <dependency name="parser4" /> 
        <dependency name="parser5" /> 
        <dependency name="parser6" /> 
        <dependency name="parser7" /> 
        <dependency name="parser8" /> 
        <dependency name="parser9" /> 
        </array> 
       </param> 
       </constructor> 
      </typeConfig> 
      </type> 
     </types> 
     </container> 
    </containers> 

    </containers>  

// -------------------------------------------------- -

私はtypeConfigノードにコメントしました。 "パラメータrunDataDispatcherの値を構成するための有効な属性が見つかりませんでした。設定ファイルを確認してください。"

その後、私はparameterType属性を削除しましたが、これは機能しませんでした。 私はtypeAliasesノードにコメントし、typeAliasノードをエイリアスに変更しました。タイプノード(ノードの下)もコメントし、子ノードタイプを登録して登録しました。これのうちのどれもうまくいかなかったあなたは<typeAlias>が今<alias>で、<type><register>する必要があります言及したよう

答えて

13

XML構成はUnityバージョン1.2と

2との間で変更されました。

<typeAliases>タグ、<containers>タグ、<types>および<typeConfig>タグを削除できます。

セクション名を "runDataParserConfiguration"から "unity"に変更すると便利な場合は、インテリセンスを使用して設定を導くことができます。設定後、必要に応じていつでも "runDataParserConfiguration"に戻すことができます。

あなたの設定は次のようになります:@RandyLevyによって答えは、私はさらにいくつかの変更を行うために必要な、要素のほとんどで私を助けたものの

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
     <section name="runDataParserConfiguration" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/> 
    </configSections> 

    <runDataParserConfiguration xmlns="http://schemas.microsoft.com/practices/2010/unity"> 

     <alias alias="IRunDataDispatcher" type="RunDataParser.Interface.IRunDataDispatcher, RunDataParser.Interface" /> 
     <alias alias="IRunDataParser" type="RunDataParser.Interface.IRunDataParser, RunDataParser.Interface" /> 
     <alias alias="IRunDataParserArray" type="RunDataParser.Interface.IRunDataParser[], RunDataParser.Interface" /> 
     <alias alias="Dispatcher" type="RunDataParser.Common.Dispatcher, RunDataParser.Common" /> 
     <alias alias="Parser1" type="RunDataParser.Parser1, RunDataParser" /> 
     <alias alias="Parser2" type="RunDataParser.Parser2, RunDataParser" /> 

     <container> 
      <register name="parser1" type="IRunDataParser" mapTo="Parser1" /> 
      <register name="parser2" type="IRunDataParser" mapTo="Parser2" /> 
      <register name="ParserDispatcherWrapper" type="Presentation.RawDataManagement.Wrapper.ParserDispatcherWrapper, RawDataManagement"> 
       <constructor> 
        <param name="runDataDispatcher" type="Dispatcher" /> 
        <param name="runDataParsers" type="IRunDataParserArray"> 
         <array> 
          <dependency name="parser1" /> 
          <dependency name="parser2" /> 
         </array> 
        </param> 
       </constructor> 
      </register> 
     </container> 

    </runDataParserConfiguration> 
</configuration> 
+1

こんにちはTuzo、お返事ありがとうございます!私たちは正しい構成を持っています。私は[ここ](http://compositewpf.codeplex.com/discussions/278726)にコードを掲載しましたが、ここに投稿することはできませんでした。 – kima05

+2

この質問に「回答済み」とマークすることを忘れないでください。 – ErnieL

0

。それらはOPのファイルには含まれていませんでしたが、Unity 1.2〜2.0のアップグレードに関する問題を抱えている人のために追加します。

私のアプリケーションでは、依存関係はコンストラクタではなく、パブリックプロパティを介して注入されます(理由は問いません)。変更することができます

<type type="IMyService" mapTo="MyService"> 
    <typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration"> 
    <property name="CurrentDataContext" propertyType="IDataContext" /> 
    </typeConfig> 
</type> 

<register type="IMyService" mapTo="MyService"> 
    <property name="CurrentDataContext" dependencyType="IDataContext" /> 
</register> 

The Unity Configuration Schema

はまだ他の要素であなたを助けるかもしれないだろう

だから、私のような構成要素を持っています。

関連する問題