C# 此XmlWriter不支持base64编码数据
我有一门课是这样的:C# 此XmlWriter不支持base64编码数据,c#,.net,xml,xml-serialization,C#,.net,Xml,Xml Serialization,我有一门课是这样的: public class Data { public string Name { get; set; } public int Size { get; set; } public string Value { get; set; } [NonSerialized] public byte[] Bytes; } 当列表点击下面的序列化方法时,它偶尔会随着 “无效操作例外”本 XmlWriter不支持base64 编码数据。” 如您所见,我没
public class Data
{
public string Name { get; set; }
public int Size { get; set; }
public string Value { get; set; }
[NonSerialized] public byte[] Bytes;
}
当列表
点击下面的序列化方法时,它偶尔会随着
“无效操作例外”本
XmlWriter不支持base64
编码数据。”
如您所见,我没有直接编码任何内容,只是使用默认的序列化机制
private static XDocument Serialize<T>( T source )
{
var target = new XDocument( );
var s = new XmlSerializer( typeof( T ) );
using( XmlWriter writer = target.CreateWriter( ) )
{
s.Serialize( writer, source );
}
return target;
}
私有静态XDocument序列化(T源)
{
var target=newxdocument();
var s=新的XmlSerializer(typeof(T));
使用(XmlWriter=target.CreateWriter())
{
s、 序列化(作者、来源);
}
回报目标;
}
数据将具有Name
属性,这些属性是用下划线分隔的英文单词。除了添加了数学运算符或数字(它们是数学表达式)外,值
属性也将类似
有人知道是什么原因造成的吗?我如何纠正它?使用
[XmlIgnore]
而不是[NonSerialized]
。后者用于SOAP和二进制格式化程序,根据:
使用BinaryFormatter或
SoapFormatter类来序列化
对象,使用非序列化数据属性
属性以防止字段被删除
正在序列化。例如,你可以
使用此属性可防止
敏感数据的序列化
对象的目标对象
非序列化数据属性是
公共领域和私人领域
可序列化类。默认情况下,
类不可序列化,除非
它们被标记为
序列化属性。在
序列化过程将对所有公众开放
类的私有字段是
默认情况下序列化。标记的字段
具有非序列化属性的是
在序列化过程中被排除。如果你
正在使用XmlSerializer类
序列化对象时,请使用
XmlIgnoreAttribute类来获取
同样的功能
请注意,我很惊讶您的原始代码甚至可以编译-当我尝试它时,它说
[非序列化]
只能应用于字段…这个“仅应用于字段”…对不起,这是我在发布之前清理代码的产物。编辑问题以解决它。