2012-05-01 54 views
0

我有一个自定义类,只有一个字符串类型的属性。我的课有什么办法支持将序列化作为XML属性?

试图连载这个类的一个对象作为使用XmlSerializer的结果在异常的属性:

XmlAttribute/XMLTEXT不能用于编码复杂类型

现在我知道我可以捏造这我创建一个伪字符串属性在我的包含类型和序列化,而是有什么办法让我的自定义类支持它本质?

.Net类如何做(例如DateTime)?

+0

只是检查,你已经标记你的类为'[Serializable]',对吧? –

+1

不是。我认为这只是二进制序列化所必需的? – GazTheDestroyer

+0

啊,对不起。是。这是这个问题的属性,不是它。 –

回答

1

为此,您必须实施IXmlSerializable并完全控制您的类型是如何序列化/反序列化的。尽管如此,为了这样一个简单的任务,却不得不付出巨大的努力。当涉及Nullable类型时,大多数人都被这个问题困住了。

+2

你确定这会行吗? .Net如何知道我不会尝试在我的实现中连载一个或多个xml元素? – GazTheDestroyer

+0

你在控制序列化,所以你可以说写什么http://msdn.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.writexml.aspx – empi

+0

我知道我可以说,但.Net不知道我要做什么,所以它不知道我的类是否可以包含在属性中。我的问题是如何告诉.Net我可以序列化为一个属性。 – GazTheDestroyer

相关问题