Xaml 如何将RichTextBox内容保存到SQL varbinary(字节数组)列中?

Xaml 如何将RichTextBox内容保存到SQL varbinary(字节数组)列中?,xaml,richtextbox,xps,flowdocument,varbinary,Xaml,Richtextbox,Xps,Flowdocument,Varbinary,我想以XamlPackage格式将RichTextBox的内容保存到varbinary(=字节数组)。 我需要关于如何使用它的技术建议 我实际上需要知道如何将FlowDocument转换为字节数组 甚至建议将其存储为varbinary,还是这是个坏主意 更新 代码段: ///Load byte[] document = GetDocumentFromDataBase(); RickTextBox tb = new RickTextBox(); TextRange tr = new TextRa

我想以XamlPackage格式将RichTextBox的内容保存到varbinary(=字节数组)。 我需要关于如何使用它的技术建议

我实际上需要知道如何将FlowDocument转换为字节数组


甚至建议将其存储为varbinary,还是这是个坏主意


更新

代码段:

///Load
byte[] document = GetDocumentFromDataBase();
RickTextBox tb = new RickTextBox();
TextRange tr = new TextRange(tb.Document.ContentStart, tb.Document.ContentEnd)
tr.Load(--------------------------) //Load from the byte array.


///Save
int maxAllowed = 1024;
byte[] document;
RichTextBox tb = new RichTextBox();
//User entered text and designs in the rich text
TextRange tr = new TextRange(tb.Document.ContentStart, tb.Document.ContentEnd)   
tr.Save(--------------------------) //Save to byte array
if (document.Length > maxAllowed) 
{
    MessageBox.Show((document.Length - maxAllowed) + " Exceeding limit.");
    return;
}
SaveToDataBase();
TextRange

我现在找不到完整的示例,但是可以使用XamlReader和XamlWriter将文档放入和取出字符串。从那里,您可以使用Unicode编码、Asciencoding或任何您想要将其放入和移出字节的编码器

我的从字符串设置文档的简短示例。。。 docReader是我的流文档阅读器

        private void SetDetails(string detailsString)
    {
        if (docReader == null)
            return;
        if (String.IsNullOrEmpty(detailsString))
        {
            this.docReader.Document = null;
            return;
        }
        using (
        StringReader stringReader = new StringReader(detailsString))
        {
            using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create(stringReader))
            {
                this.docReader.Document = XamlReader.Load(reader) as FlowDocument;
            }
        }
    }

它甚至被推荐将它存储为ValDoice,或者这是一个坏主意?我不认为这是一个非常糟糕的想法,但是我一定会记住,这些可以变大,所以除非你在支持它的DB上使用VARDION(MAX),否则你应该考虑BLB数据类型。我问的是性能,即字节数组的解包。关于BLOB:1)我不会使用大型文档,2)在这个项目中我使用2005。另外请注意,我在我的问题中添加了一个代码片段,请看一下。很抱歉回复太晚。。。我认为无论哪种方式,您都不会注意到任何真正的性能差异。我还没有做过很多这方面的工作,但到目前为止,我在WPF中使用RichTextBox的经验是,UI操作可能是时间上最大的部分,而通过更改底层类型获得的收益可能只是时间上的一小部分。我想你所做的可能会奏效,但我自己并没有像做XamlReader那样直接做。加载更符合我当时所做的。不过看起来基本上还可以。