2012-07-16 90 views
0

序列化我嘗試寫與WCF(REST)服務的演示,我用LinqToSQL爲我的數據庫操作。 當我嘗試在我的域對象上發佈[DataContract]或[Serializable]時,它無法序列化爲JSON。我只能在我的瀏覽器中獲得一對「{}」。刪除[DataContract]或[Serializable]屬性後,它會再次變爲正常。DataContract在WCF服務

[DataContract] 
public partial class MyDoc{ } // a Linq To SQL domain class 

get方法:

[WebGet(UriTemplate = "GetMyDoc/{docID}",ResponseFormat=WebMessageFormat.Json)]  
    [ServiceKnownType(typeof(MyDoc))] 
    public WcfRESTfulTest.Db.MyDoc GetMyDoc(string docID) 
    { 
     WcfRESTfulTest.Db.DbDataContext db = new DbDataContext(); 
     var query = db.MyDocs.Where(d => d.DocID.Equals(Int32.Parse(docID))); 
     return query.FirstOrDefault(); 
    } 

回答

0

如果不使用[DataContract]屬性,所有的公共屬性將被序列化。如果您確實使用它,則必須使用[DataMember]屬性選擇要序列化的屬性。

+0

在正常WCF服務具有的WebHttpBinding,我發現像mydoc._DocID一些性質與[Serializable接口]和mydoc.DocID&mydoc.DocIDSpecified(布爾)在我使用[DataContract]僅客戶端。 – Ericpoon 2012-07-16 09:13:36