Я обхожу это вокруг некоторое время и не могу понять, почему я могу использовать конфигурацию для добавления ссылок на известные типы или как отлаживать ее. Любые указатели могут спасти мое здравомыслие.
У меня есть служба WCF, размещенная в службе Windows, и у меня есть файл конфигурации для службы. В конфиге у меня так:
<configuration>
...
<system.runtime.serialization>
<dataContractSerializer>
<declaredTypes>
<add type="My.Full.Interface.Name, My.Assembly.Name.With.No.dll">
<knownType type="My.Full.Implementation.Class.Name, My.Assembly.Name.With.No.dll"/>
</add>
</declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>
...
</configuration>
Я пытался добавить Version=1.0.0.0,Culture=neutral,PublicKeyToken=null
к обоим объявлениям, но я не могу заставить сериализатор контракта данных их забрать.
Я проверил, что этот класс можно вернуть (добавив [ServiceKnownType(typeof(My.Implementation.Class))]
), и это работает, но у меня есть другая реализация, которую я хочу использовать, которая находится в другой сборке, которая создала бы циклическую ссылку, если бы я добавил ее, поэтому не могу использовать это.
Как мне отладить, почему сериализатор данных не находит мой тип? Или что не так с моей декларацией?