我正在从数据库中获取数据。如果DBObject数据的空值("")
不是null,那么我希望从XML序列化中排除该值。
EventComment event = new EventComment();
event.Comments = datalogic.GetComment();
if(event.Comments != String.Empty){
//Add Logic
}
SerializeToXmL(event)
//dataLogic Class
public string GetComment()
{
var datalink = _unitOfWork.GetRepository<tbl1>()
.GetFirstOrDefault(predicate: source => (source.id == id));
return datalink .comment;
}
我知道我们可以使用null值,但我不想给变量赋值null值。我可以从null获得不同的解决方案吗。在XML系列化之后,我现在得到了空标签。
<comment/>
null
值已被排除;如果我们谈论忽略空字符串(""
(;条件序列化";是你的朋友。许多串行器(包括XmlSerializer
(通过众所周知的public bool ShouldSerialize*()
模式支持这一点,例如:
public class Foo
{
[XmlElement("comment")]
public string Comment { get; set; }
public bool ShouldSerializeComment() => !string.IsNullOrEmpty(Comment);
}
如果我用一个空的Comment
序列化它:Comment
成员就不会被序列化。您可以简单地扩展它以应用任何其他您喜欢的逻辑,例如:
public bool ShouldSerializeComment() => !string.IsNullOrWhiteSpace(Comment);