WCF Известный тип из System.Object в Config
Я пытаюсь указать известный тип в моей конфигурации, но у меня проблемы с тем, что он происходит от объекта. Я могу заставить его работать, указав известный тип через атрибут. Но в этом случае мне нужно заставить его работать из конфига.
Вот пример. Следующее работает отлично:
[ServiceContract]
[ServiceKnownType(typeof(MyData))]
public interface IContract
{
[OperationContract]
void Send(object data);
}
[DataContract]
public class MyData
{
[DataMember]
public string Message { get; set; }
}
Но если я удалю атрибут ServiceKnownType и добавлю в конфигурацию следующее:
<system.runtime.serialization>
<dataContractSerializer>
<declaredTypes>
<add type="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<knownType type="WpfApplication1.MyData, WpfApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</add>
</declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>
Я получаю исключение ConfigurationErrorsException с сообщением «Недопустимое значение свойства« тип ». Ошибка: тип System.Object не может использоваться в качестве объявленного типа в конфигурации».
Есть ли способ заставить это работать через конфиг?