2011年4月16日 星期六

WCF傳輸物件的方法,javascript+ajax傳送Json物件給WCF

我們會需要利用AJAX傳送物件給WCF
讓WCF去接收資料並且再利用
作法為
1.先建立已啟用AJAX 的 WCF
2.建立傳輸的物件,物件需要設定[DataContract],
裡面的要輸出輸入的資料要設定[DataMember]

[DataContract]
public class Person
{
Person() { }
    [DataMember]
    public string FirstName { get; set; }

    [DataMember]
    public string LastName { get; set; }
}

3.要注意資料設定為Serializable和DataMember是不一樣的輸出和輸入
/// Result of Person class marked as Serializable
{"k__BackingField":"Chris","k__BackingField":"Pietschmann"}


/// Result of Person class marked as DataContract with
/// each Property marked as DataMember
{"FirstName":"Chris","LastName":"Pietschmann"}


4.Client端要組和出Json字串上傳給伺服器端,Javascript的使用者要注意要用""包起來
不然會被當作是物件上傳

5.另外要注意中文要用UTF8
string retval = Encoding.UTF8.GetString(ms.ToArray());
Person us = (Person)serial.ReadObject(ms);



參考資料為
http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-DataContractJsonSerializer.aspx

沒有留言: