0
我有以下实体基类标记为可序列:如何在.net序列保留默认值
[Serializable]
public abstract class EntityBase
{
public bool Is_ActiveNull = true;
[XmlElement(ElementName = "Is_ActiveFromNull")]
...
我从基地实体继承,然后具体的实体:
[Serializable]
public class ContactEntity : EntityBase
{
...
我有一个WCF服务,它使用此实体作为合同中的输入参数。
当我从客户端创建服务引用时,它会创建一个reference.cs,它会忽略字段Is_ActiveNull的默认值。
这是reference.cs文件EntityBase类:
public partial class EntityBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
{
private bool Is_ActiveNullField;
[System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
public bool Is_ActiveNull {
get {
return this.Is_ActiveNullField;
}
set {
if ((this.Is_ActiveNullField.Equals(value) != true)) {
this.Is_ActiveNullField = value;
this.RaisePropertyChanged("Is_ActiveNull");
}
}
}
...
在这种情况下Is_ActiveNullField被默认设置为false。
我的问题是如何保持默认值?
感谢
看来,这种解决方案只适用于DataContractSerializer。我正在使用XmlSerializer。这种类型的序列化还有解决方案吗? – zosim 2012-07-11 08:12:52