2016-11-11 7 views
1

タイプ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財産及びその他の財産で1つの文字列(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; 
} 

はそれ、私は定期的にそれを行う方法ですか?

+0

TextRangeオブジェクトから何が必要ですか? –

+0

質問のタイトルからタグを削除しました。なぜ[ここ](http://stackoverflow.com/help/tagging)を参照してください。 – dymanoid

+0

@HeadhunterXamd RichTextBoxのテキストを書式設定してください。 – moonlander

答えて

関連する問題