我正在尝试序列化一个类,该类中有一个类型为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;
}我该怎么做?
发布于 2016-11-11 22:23:28
对任何感兴趣的人来说。问题是,我希望将整个MyClass对象序列化为一个xml。但是TextRange需要特殊的序列化方法,就像我在主帖子中写的那样。所以解决办法是:
序列化:
去序列化:
希望这是清楚的。
https://stackoverflow.com/questions/40547961
复制相似问题