如果您想了解c#–XML序列化–XmlCDataSection为Serialization.XmlText的相关知识,那么本文是一篇不可错过的文章,我们将对c#xml序列化不应该有xmlxn进行全面详
如果您想了解c# – XML序列化 – XmlCDataSection为Serialization.XmlText的相关知识,那么本文是一篇不可错过的文章,我们将对c# xml序列化 不应该有xmlxn进行全面详尽的解释,并且为您提供关于.net – NonSerialized和Xml.Serialization.XmlIgnore之间的区别?、.net – 如何选择Xml序列化,DataContractSerializer和LINQ to XML来序列化简单对象树?、.NET: Xml.Serialization常用对象导图、c# .net core System.Xml.Serialization 需使用包 System.Xml.XmlSerializer补齐属性的有价值的信息。
本文目录一览:- c# – XML序列化 – XmlCDataSection为Serialization.XmlText(c# xml序列化 不应该有xmlxn)
- .net – NonSerialized和Xml.Serialization.XmlIgnore之间的区别?
- .net – 如何选择Xml序列化,DataContractSerializer和LINQ to XML来序列化简单对象树?
- .NET: Xml.Serialization常用对象导图
- c# .net core System.Xml.Serialization 需使用包 System.Xml.XmlSerializer补齐属性
c# – XML序列化 – XmlCDataSection为Serialization.XmlText(c# xml序列化 不应该有xmlxn)
我需要将XmlCDataSection对象属性序列化为元素的innertext.
我要找的结果是这样的:
<Test value2="Another Test"> <![CDATA[<p>hello world</p>]]> </Test>
为了产生这个,我使用这个对象:
public class Test { [System.Xml.Serialization.XmlText()] public XmlCDataSection value { get; set; } [System.Xml.Serialization.XmlAttributeAttribute()] public string value2 { get; set; } }
在value属性上使用xmltext注释时,将引发以下错误.
system.invalidOperationException:
There was an error reflecting property
‘value’. —>
system.invalidOperationException:
Cannot serialize member ‘value’ of
type System.Xml.XmlCDataSection.
XmlAttribute/XmlText cannot be used to
encode complex types
如果我注释掉注释,序列化将起作用,但cdata部分被放入一个值元素,这对我想要做的事情没有好处:
<Test value2="Another Test"> <value><![CDATA[<p>hello world</p>]]></value> </Test>
任何人都可以指出我正确的方向让这个工作.
谢谢,亚当
解决方法
public class Cdatafield : IXmlSerializable { private string elementName; private string elementValue; public Cdatafield(string elementName,string elementValue) { this.elementName = elementName; this.elementValue = elementValue; } public XmlSchema GetSchema() { return null; } public void WriteXml(XmlWriter w) { w.WriteStartElement(this.elementName); w.WriteCData(this.elementValue); w.WriteEndElement(); } public void readxml(XmlReader r) { throw new NotImplementedException("This method has not been implemented"); } }
.net – NonSerialized和Xml.Serialization.XmlIgnore之间的区别?
System.NonSerialized和System.Xml.Serialization.XmlIgnore属性似乎做了这个工作,但它们有什么区别?看来我们可以在类的任何一个属性或者字段上使用XmlIgnore.但是NonSerialized只能在字段上使用.在任何情况下是否有任何理由不使用XmlIgnore,如果是这样,NonSerialized属性的目的是什么?为什么使用不同?
这是允许的:
<System.NonSerialized()> _ Public Foo As String
这是允许的:
<System.Xml.Serialization.XmlIgnore()> _ Public Foo As String
这是允许的:
<System.Xml.Serialization.XmlIgnore()> _ Public Property Bar() As String Get Return _Bar End Get Set(ByVal value As String) _Bar = value End Set End Property
但这是不允许的:
<System.NonSerialized()> _ Public Property Bar() As String Get Return _Bar End Get Set(ByVal value As String) _Bar = value End Set End Property
.net – 如何选择Xml序列化,DataContractSerializer和LINQ to XML来序列化简单对象树?
(我不关心XML的架构,如果需要,支持人员可以理解该文件)
那么在.net中选择不同的“easy xml”API时要考虑的权衡是什么?
解决方法
LINQ to XML – 完全控制XML和对象的设计,是3个选项中任意一个的最多代码.
DataContractSerializer – 很少或没有对XML的控制,可以处理大多数对象
XmlSerializer – 完全控制XML,但您必须以Xml序列化喜欢的方式设计对象.
.NET: Xml.Serialization常用对象导图
.NET框架中,System.Xml.Serialization 命名空间包含着用来将对象序列化为XML的文本或流的对象。
现先上传几个常用的序列化对象导图:
导图下载地址:
http://download.csdn.net/detail/daigualu/9776721
c# .net core System.Xml.Serialization 需使用包 System.Xml.XmlSerializer补齐属性
.net core 也是够奇葩的,去掉了原先许多using System.Xml.Serialization中的接口又以打包的方式提供真没话讲了。 代码:
// [XmlRoot("DeleteResult")]和[XmlElement("Deleted")],.net core中引用`System.Xml.Serialization`是没有提供的这种方法的,你需要安装依赖包System.Xml.XmlSerializer就可以了。
[XmlRoot("DeleteResult")]
public class DeleteObjectsResult : GenericResult
{
private DeletedObject[] _keys;
[XmlElement("Deleted")]
public DeletedObject[] Keys
{
get
{
if (EncodingType == null)
return _keys;
bool isUrlEncoding = EncodingType.ToLowerInvariant().Equals(HttpUtils.UrlEncodingType);
foreach (var key in _keys)
{
key.Key = isUrlEncoding ? HttpUtils.DecodeUri(key.Key) : key.Key;
}
return _keys;
}
set
{
this._keys = value;
}
}
关于c# – XML序列化 – XmlCDataSection为Serialization.XmlText和c# xml序列化 不应该有xmlxn的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于.net – NonSerialized和Xml.Serialization.XmlIgnore之间的区别?、.net – 如何选择Xml序列化,DataContractSerializer和LINQ to XML来序列化简单对象树?、.NET: Xml.Serialization常用对象导图、c# .net core System.Xml.Serialization 需使用包 System.Xml.XmlSerializer补齐属性的相关知识,请在本站寻找。
本文标签: