WPF Richtextbox XamlWriter behaviour
- by Krishna
I am trying to save some c# source code into the database. Basically I have a RichTextBox that users can type their code and save that to the database.
When I copy and paste from the visual studio environment, I would like to preserve the formating etc. So I have chosen to save the FlowDocuments Xaml to the database and set this back to the RichTextBox.Document.
My below two function serialise and deserialise the RTB's contents.
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;
}
However when I try to serialise and deserialise the following code, I am noticing this incorrect(?) behaviour
using System;
public class TestCSScript : MarshalByRefObject
{
}
Serialised XAML is
using
System;
public
class TestCSScript :
MarshalByRefObject
{}{
}
Notice the the new set of "{}"
What am I doing wrong here... Thanks in advance for the help!