我正在尝试序列化一个具有类型属性的类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 序列化)。
这就是我经常这样做的方式:
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;
}
我怎样才能做到这一点?