如何序列化xmlSerialization中的私有成员
本文关键字:成员 序列化 xmlSerialization | 更新日期: 2023-09-27 18:09:42
[DataContract()]
public class Person
{
[DataMember()]
private string _fname;
[DataMember()]
private string _lname;
[DataMember()]
public string _nickName;
public Person(string f, string l)
{
_fname = f;
_lname = l;
_nickName = _fname + _lname.Substring(0, 1);
}
public string FullName()
{
return _fname + " " + _lname;
}
}
我得到了这个类,如果我自己编写序列化/反序列化的方法,我可以序列化所有成员(私有/公共)。然而,当我在。net webservice中使用它时,只有public成员被序列化,而不是private成员。我做错了什么?找遍了整个过程,还是找不到解决办法。是否有一种方法告诉webservice序列化所有成员(public) ?私人的,内部. .)
听起来可能你的web服务代理可能使用XmlSerializer,而不是DataContractSerializer。如果您使用旧的asmx web服务或不使用。net web服务进行通信,有时可能会出现这种情况。尝试将您的私有字段更改为公共属性,看看是否有效。
[DataMember()]
public string _fname { get; set; }
[DataMember()]
public string _lname { get; set; }
[DataMember()]
public string _nickName { get; set; }
如果它工作,那么你正在使用XmlSerializer。它不能序列化私有字段,但是DatacontractSerializer可以。