0

IDictionary<string,List<string>>ウィンザー xml ファイルの定義に失敗しました

私のクラス(C#):

public class myService 
{        
    public IDictionary<string, List<string>> Apis { get; set; }
}

ウィンザー構成ファイル:

<component id="myService" type="Test.Service.myService, Test.Service">
<parameters>
  <Apis>
    <dictionary>
      <entry key="api1">${api}</entry>
    </dictionary>
  </Apis>
</parameters>
</component>

<component id="api" type="System.Array, mscorlib">
  <array>
    <item>a</item>
    <item>b</item>
  </array>
</component>

私も試しました:

<component id="api" type="System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib"> 
 <parameters>
    <collection>
      <array>
        <item>a</item>
        <item>b</item>
      </array>
    </collection>
  </parameters>
</component>

ウィンザー構成でそれを行うことはできますか? ありがとう

4

1 に答える 1

1

辞書を初期化するために使用する戦略があります。

  • コピー コンストラクターを使用して、辞書のカスタム クラスを作成します。
public class MyDictionary : Dictionary<int, string>
{
    public MyDictionary(Dictionary<int, string> source)
    {
        foreach (var entry in source)
        {
            Add(entry.Key, entry.Value);
        }
    }
}
  • 構成でコンポーネントを定義します。
<component id="DictionaryComponent" type="MyDictionary, MyAssembly">
    <parameters>
        <source>
            <dictionary>
               <entry key="2012">last year</entry>
               <entry key="2013">this year</entry>
            </dictionary>
        </source>
    </parameters>
</component>
于 2014-01-13T16:19:32.493 に答える