0

我尝试使用 WCF (REST) 服务编写演示,并使用 LinqToSQL 作为我的数据库运算符。当我尝试在我的域对象上发布 [DataContract] 或 [Serializable] 时,它无法序列化为 JSON。我只能在浏览器中获得一对“{}”。去掉 [DataContract] 或 [Serializable] 属性后,又恢复正常。

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

获取方法:

    [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();
    }
4

1 回答 1

0

如果不使用该[DataContract]属性,所有公共属性都将被序列化。如果确实使用它,则必须使用属性选择加入要序列化的 [DataMember]属性。

于 2012-07-16T09:05:43.317 回答