【发布时间】:2011-07-25 09:26:35
【问题描述】:
我正在尝试序列化具有嵌套类的对象。我已经用 [NonSerialized] 属性标记了嵌套类,但我收到一个错误:
属性“NonSerialized”在此声明类型上无效。它仅对“字段”声明有效。
如何从序列化中省略嵌套类?
我已经包含了一些代码,可以显示我正在尝试做的事情。 感谢您的帮助。
[Serializable]
public class A_Class
{
public String text { get; set; }
public int number { get; set; }
}
[Serializable]
public class B_Class
{
[NonSerialized]
public A_Class A { get; set; }
public int ID { get; set; }
}
public byte[] ObjectToByteArray(object _Object)
{
using (var stream = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(stream, _Object);
return stream.ToArray();
}
}
void Main()
{
Class_B obj = new Class_B()
byte[] data = ObjectToByteArray(obj);
}
【问题讨论】:
-
该错误完全描述了问题 - 您不能将此属性应用于除字段之外的任何内容(您正在尝试将其应用于属性)。
标签: c# .net serialization serializable