我正在尝试将一些 c# 源代码保存到数据库中。基本上我有一个 RichTextBox,用户可以输入他们的代码并将其保存到数据库中。
当我从 Visual Studio 环境复制和粘贴时,我想保留格式等。所以我选择将 FlowDocuments Xaml 保存到数据库并将其设置回 RichTextBox.Document。
我下面的两个函数序列化和反序列化 RTB 的内容。
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;
}
但是,当我尝试序列化和反序列化以下代码时,我注意到这种不正确的(?)行为
using System;
public class TestCSScript : MarshalByRefObject
{
}
序列化 XAML 是
using
System;
public
class TestCSScript :
MarshalByRefObject
{}{
}
注意新的“{}”集
我在这里做错了什么......提前感谢您的帮助!