我有一個類,它包含的XElement對象的屬性...序列化的XElement是一個類對象
public class SomeClass
{
public string prop1 = "";
public string prop2 = "";
public XElement elem = null;
}
我與實例後設置的XElement屬性代碼另一個內部定義的類的對象......
UserFields userFields = new UserFields();
SomeClass sc = new SomeClass();
sc.prop1 = "Sam";
sc.prop2 = "Smith";
sc.elem = new XElement("UserFields", userFields);
的問題是,當我使用XmlSerializer的序列化類對象到XML,我只爲SomeClass.elem屬性得到完全合格的類名...
StringWriter sw = new StringWriter();
XmlSerializer x = new XmlSerializer(o.GetType());
x.Serialize(sw, o);
string xmlString = sw.ToString();
我得到這個作爲輸出...
<SomeClass>
<prop1>Sam</prop1>
<prop2>Smith</prop2>
<elem>MyNamespace.UserFields</elem>
</SomeClass>
好像XmlSerializer的不知道什麼相當與的XElement對象做。我想找到一種方法將XML從XElement對象序列化爲XML字符串,就像正在發生的其他類對象一樣。有任何想法嗎?
是否應用'[XmlAnyElement將]'標籤到'elem'屬性,產生所需的輸出? – Xiaoy312
['[XmlAnyElement]'](https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlanyelementattribute.aspx)將完成這項工作,請參閱[本答案](http: //stackoverflow.com/a/30278016/3744182)。 – dbc