當我在客戶端上創建DataContract的實例時,我需要某些數據成員獲取一些值。這不是使用構造函數發生的。我搜索了不同的論壇,發現我們必須使用[OnDeserializing]和[OnDeserialized]屬性。這也不起作用。有人可以在這裏提出一些建議。另一種選擇是在客戶端的部分類中創建構造函數。我想避免這種情況。WCF DataContract中的構造函數未反映在客戶端上
請找到下面的代碼:
服務器端:Datacontract
[DataContract]
public class Account
{
private int mAccountId;
private string mAccountName;
public Account()
{
mAccountId = 5;
mAccountName = "ABC";
}
[OnDeserializing]
public void OnDeserializing(StreamingContext context)
{
mAccountId = 5;
mAccountName = "ABC";
}
[OnDeserialized]
public void OnDeserialized(StreamingContext context)
{
}
[DataMember]
public int AccountId
{
get
{
return mAccountId;
}
set
{
mAccountId = value;
}
}
[DataMember]
public string AccountName
{
get
{
return mAccountName;
}
set
{
mAccountName = value;
}
}
}
客戶端 - 初始化
namespace TestClient
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Account acc = new Account();
}
}
}
WCF客戶端 - 服務器的連接** **只鏡像數據的合同數據方面 - ** **沒有任何代碼,你可能在你的數據類。畢竟:僅數據可以序列化成由XSD(XML模式)所示的格式,並通過線路發送 - 沒有代碼。 – 2011-06-11 19:15:22