当我在客户端上创建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