Próbuję określić znany typ w mojej konfiguracji, ale mam problem z tym, że pochodzi on z Object. Mogę sprawić, żeby działało określając znany typ za pomocą atrybutu. Ale w tym przypadku muszę sprawić, by działał z poziomu konfiguracji.Znany typ WCF z System.Object w Config
Oto przykład. Poniższe działa poprawnie:
[ServiceContract]
[ServiceKnownType(typeof(MyData))]
public interface IContract
{
[OperationContract]
void Send(object data);
}
[DataContract]
public class MyData
{
[DataMember]
public string Message { get; set; }
}
Ale jeśli usunąć atrybut ServiceKnownType i umieścić następującą informację w config:
<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>
dostaję ConfigurationErrorsException z komunikatem „wartości dla własności«typ» jest niepoprawny. Błąd jest następujący: Typ System.Object nie może być używany jako zadeklarowany typ w konfiguracji. "
Czy jest mimo to wykonanie tej pracy przez config?