XML文書をシリアル化しようとしていますが、ノードの1つが問題になります。私のXML文書は:C#でリッチテキストをシリアライズ
<?xml version="1.0" encoding="utf-8"?>
<item id="tcm:38-21324" title="Accessibility Product Accessibility content - 11-INTL" type="Component">
<title>Accessibility Product Accessibility content - 11-INTL</title>
<generalContent xmlns="uuid:bc85180b-db18-412f-b7ad-36a25ff4012f">
<title>Produkttilgængelighed</title>
<style xlink:href="tcm:38-3149-1024" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="Horizontal Rule (Blue)">Horizontal Rule (Blue)</style>
<image>
<image xlink:type="simple" xlink:href="tcm:38-33683" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="Feature-Image_D_527478227_kp" />
<smallImage xlink:type="simple" xlink:href="tcm:38-33684" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="Feature-Image_M_527478227_kp" />
<retinaImage xlink:type="simple" xlink:href="tcm:38-33685" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="Feature-Image_T_527478227_kp" />
<altText>Kvinde med briller kigger på en bærbar computer</altText>
<title>Kvinde med briller kigger på en bærbar computer</title>
<imagePosition>Right</imagePosition>
</image>
<description>
<hr class="mainRow__hr mainRow__hr--bbOrange" xmlns="http://www.w3.org/1999/xhtml" />
<p xmlns="http://www.w3.org/1999/xhtml">Vores produkter er designet og udviklet</p>
</description>
</generalContent>
</item>
これは私のモデルです。これは、説明フィールド以外の他のフィールドとうまく動作します。
[Serializable()]
[XmlRoot(ElementName = "generalContent", Namespace = "uuid:bc85180b-db18-412f-b7ad-36a25ff4012f")]
public class GeneralContent
{
[XmlElement(ElementName = "title")]
public string Title { get; set; }
[XmlElement(ElementName = "image")]
public Image Image { get; set; }
[XmlElement(ElementName = "description")]
public string Description { get; set; }
}
シリアル化を行うコードは一般的なもので、他のすべてのモデルで動作します。
public static T MapXmlToType<T>(XElement xmlData) where T:ITridionModel
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
return (T) xmlSerializer.Deserialize(xmlData.CreateReader());
}
"description"ノードを文字列として取得する必要があります。基本的にはリッチテキストフィールドであり、スタイリングの値も含めて全体の内容が必要です。しかし、今のところこのモデルは、説明ノードにSystem.InvalidOperationException
を投げています。どのように私はこれをシリアル化できますか?
コードのシリアル化/シリアル化解除コードを記載してください。あなたはシリアル化(XMLを書く)またはデシリアライズ(XMLを読む)しようとしていますか? – wdosanjos
説明プロパティの直列化を手作業で実装し、xmlまたは特殊文字(IXmlSerializableを参照) – Sebi
ermと解釈されるすべてのrtfタグを無効にする必要があると思います。XMLがシリアル化されています。 – Jodrell