Я обнаружил, что в Unity есть ошибки при работе с Generics
(http://unity.codeplex.com/Thread/View.aspx?ThreadId=30292),
Существует довольно неприятный обходной путь:
public class MyDictionary : Dictionary<string,string>{
public MyDictionary() {
}
}
теперь в файле конфигурации:
<typeAlias alias="string" type="System.String, mscorlib" />
<typeAlias alias="Dictionary" type="MyFakeNamespace.MyDictionary, MyFakeAppDll" />
...
, а затем, используя предложение Джехофа:
<type name="ConfigurationDictionary" type="Dictionary">
<typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration">
<method name="Add" key="0">
<param name="key" parameterType="string">
<value value="localHost"/>
</param>
<param name="value" parameterType="string">
<value value="127.0.0.1"/>
</param>
</method>
<method name="Add" key="1">
<param name="key" parameterType="string">
<value value="contentHost"/>
</param>
<param name="value" parameterType="string">
<value value="\\content"/>
</param>
</method>
<method name="Add" key="2">
<param name="key" parameterType="string">
<value value="virtualDir"/>
</param>
<param name="value" parameterType="string">
<value value="/"/>
</param>
</method>
</typeConfig>
</type>
атрибут ключа в теге метода должен быть уникальным для вызова метода Add несколько раз.
Затем, когда ошибка будет решена, небольшие изменения в типе Alias позволяют нам поставить правильный тип, но я думаю, что я оставлю все как есть.