1
我无法使此方案正常工作。这里的模式 -带有抽象DataMember数组的WCF DataContract
[DataContract]
/*abstract*/ class BaseT
{ ... }
[DataContract]
class ChildT : BaseT
{ ... }
[DataContract]
class MessageContents
{
[DataMember]
public BaseT[] XX; // Array of BaseT objects. I need WCF to somehow figure out that they're actually ChildT.
}
// ...receive a webHttp request of type MessageContents...
// cast to use MessageContents.XX as a ChildT[] instead of a BaseT[]
ConcreteClass[] QQ = (ConcreteClass[])request.xx;
我已经尝试使用KnownType或KnownServiceType几乎所有注释都无济于事。
如果我使BaseT抽象,我得到一个反序列化错误'不能实例抽象类'。如果我使BaseT具体化,我不会遇到反序列化错误。相反,当我将它转换为ChildT时,我得到“无法投射'BaseT []'类型的对象来键入'ChildT []'”。
上帝我爱这个网站。非常感谢,非常感谢。 – 2009-11-11 14:24:10