我試圖序列化一個類中有一個TextRange
類型的屬性。如何使用TextRange屬性序列化一個類?
例子:
public class MyClass
{
private string someProp;
public string SomeProp
{
get { return someProp; }
set { someProp = value; }
}
private TextRange myTextRange;
public TextRange MyTextRange
{
get { return myTextRange; }
set { myTextRange = value; }
}
}
的事情是,該TextRange
類型不能定期連載,而序列化全班,它有它自己的特殊方法序列化本身,我是做這樣的:
using (MemoryStream ms = new MemoryStream())
{
myTextRange.Save(ms, DataFormats.Xaml, true);
string xaml = Encoding.ASCII.GetString(ms.ToArray());
}
的問題是,我希望類與TextRange
財產和其他財產一起被序列化到一個字符串(XML字符串)。我不介意使用另一種序列化方法(不是xml),但我不明白它是如何解決這個問題的。
我經常一次序列化整個類,但TextRange
類沒有標記爲可序列化(不是二進制序列化),也沒有空的構造函數(沒有xml serilization)。
這就是我經常這樣做:
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
StringWriter stringWriter = new StringWriter();
using (XmlWriter writer = XmlWriter.Create(stringWriter))
{
serializer.Serialize(writer, this);
string xml = stringWriter.ToString();
return xml;
}
我怎樣才能做到這一點?
你需要什麼TextRange對象? –
我從你問題的標題中刪除了一個標籤。看[這裏](http://stackoverflow.com/help/tagging)爲什麼。 – dymanoid
@HeadhunterXamd從格式化RichTextBox中的文本。 – moonlander