質問

私はデータベースにいくつかのC#のソースコードを保存しようとしています。基本的に私は、ユーザーが自分のコードを入力して、データベースにあることを保存することができ、リッチテキストボックスを持っています。

私はコピーして、Visual Studioの環境から貼り付けるとき、私は、データベースにFlowDocuments XAMLを保存し、RichTextBox.Documentにこのバックを設定することを選択したので

は、私は整形などを維持したいと思います。

私の2つの機能のシリアライズ以下とRTBの内容deserialise。

     private string GetXaml(FlowDocument document)
    {
        if (document == null) return String.Empty;
        else{
            StringBuilder sb = new StringBuilder();
            XmlWriter xw = XmlWriter.Create(sb);
            XamlDesignerSerializationManager sm = new XamlDesignerSerializationManager(xw);
            sm.XamlWriterMode = XamlWriterMode.Expression;                

            XamlWriter.Save(document, sm );
            return sb.ToString();
        }
    }

    private FlowDocument GetFlowDocument(string xamlText)
    {
        var flowDocument = new FlowDocument();
        if (xamlText != null) flowDocument = (FlowDocument)XamlReader.Parse(xamlText);
        // Set return value
        return flowDocument;
    }

私はシリアライズしようとし、次のコードをdeserialiseしかしとき、私はこの間違った(?)行動に気付いています。

using System;
public class TestCSScript : MarshalByRefObject
{

}
直列化されたXAMLがある

using System; public class TestCSScript : MarshalByRefObject {}{ }

注意の新しいセット "{}"

は、私がここで間違って何をやっている...感謝を事前に助けを求めて!

役に立ちましたか?

解決

私が今の遅刻溶液に辞任しましたが、あなたがたのうち、きれいなものを見つけた場合、それを投稿してください。

私は、望ましくない文字を削除するためのStringBuilderの置き換えコールを使用していました。

    private string GetXaml(FlowDocument document)
    {
        if (document == null) return String.Empty;
        else
        {

            StringBuilder sb = new StringBuilder();
            using (XmlWriter xw = XmlWriter.Create(sb))
            {
                XamlDesignerSerializationManager sm = new XamlDesignerSerializationManager(xw);
                sm.XamlWriterMode = XamlWriterMode.Expression;

                XamlWriter.Save(document, sm);
            }
            sb.Replace("{}", "");
            return sb.ToString();
        }

    }
私が感じていることxamlwriterの出会いは、「{」の文字がするとき - それはその結合式としてintreprets。私は、エスケープシーケンスがこの文字のためにあるのだろうか。

注 - 私は

を変更してみました
XamlWriterMode from XamlWriterMode.Expression to XamlWriterMode.Value
無喜びと

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top