WCF服务中的DataContract和Serializable

时间:2012-07-16 08:53:19

标签: json wcf rest service datacontract

我尝试使用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();
    }

1 个答案:

答案 0 :(得分:0)

如果您不使用[DataContract]属性,则会序列化所有公共属性。如果您确实使用它,则必须使用[DataMember]属性选择要序列化的属性。