0
我有幾個是我從JavaScript調用帶有參數是一個自定義類的形式如何確保WebServices的序列化和反序列化是對稱的?
[DataContract]
[KnownType(typeof(MyOtherSubclass))]
public class MyClass
{
[DataMember]
public MyOtherClass MyMember { get; set; }
}
標準ASP.NET Web方法,其中MyOtherClass
標一類具有Serializable
但與DataContract
屬性(我無法控制其代)。有一些MyOtherClass
的子類,例如MyOtherSubclass
:
[Serializable]
public class MyOtherSubClass : MyOtherClass
{
private string valueField;
public string Value
{
get { return valueField; }
set { valueField = value; }
}
}
當我使用DataContractJsonSerializer直接序列MyClass的的目的,我得到類似於
{ "MyMember" : { "__type" : "MyOtherSubClass:#Namespace", "valueField" : "xxx" } }
然而,結果,當我通過這樣的JSON成從JavaScript web方法請求,反序列化時我得到一個異常。我已經嘗試了一點,發現使用下列之一,當代替
{ "MyMember" : { "___type" : "Namespace.MyOtherSubClass", "Value" : "xxx" } }
反序列化的工作沒有任何問題。
是否有任何方式配置DataContractJsonSerializer的方式,它會產生第二種形式的JSON,這樣的Web方法參數反序列化將工作?