我有一個類,爲什麼我不能在WCF對象中指定NonSerialized
[DataContract]
public class Request
{
[DataMember]
public int Id {get;set;}
[DataMember]
public UserType Type { get; set; }
}
我有一個WCF web服務,當方法被調用,加載對象到Request對象,我不希望傳入的請求修改類型屬性。我試圖將類屬性爲
[DataContract]
public class Request
{
[DataMember]
public int Id {get;set;}
[NonSerialized]
[DataMember]
public UserType Type { get; set; }
}
,我也試過
[DataContract]
public class Request
{
[NonSerialized]
private UserType _type;
[DataMember]
public UserType Type
{
get { return _type; }
set { _type = value; }
}
}
但在這兩種情況下,我發現了錯誤「屬性‘非序列化’是不會在這個聲明類型有效。它只對'field'聲明有效。
Wcf服務中的Request對象被加載爲;
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/XML/GetTypes",
BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
XElement XMLGetTypes(Request oRequest)
{
...do something with the object
}
或這取決於端點
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/JSON/GetTypes",
BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
string JSONGetTypes(Request oRequest)
{
...do something with the object
}
我怎樣才能解決這個問題?
請求類DataContract?你在哪裏創建Request對象併爲其賦值? – danish
我更新了我的問題以顯示我如何分配/創建對象 – Tommassiov