我试图序列化一个类中有一个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