WPFFlowDocumentsをSQLServerに保存する必要があります。それを行うための最良のフォーマットは何ですか?弦?ブロブ?5Kワード程度未満のドキュメントでは重要ですか?
5174 次
3 に答える
6
FlowDocumentはシリアル化できないため、上記のSWekoの回答は機能しません。以下のメソッドを使用して、Xaml文字列との間でFlowDocumentを取得し、nvarchar(max)を使用してデータベースに保存できます。
var stringReader = new StringReader(info);
var xmlTextReader = new XmlTextReader(stringReader);
return (FlowDocument)XamlReader.Load(xmlTextReader);
と
var infoString = XamlWriter.Save(info);
于 2010-03-25T09:14:58.880 に答える
5
FlowDocumentオブジェクトを処理せずにデータベースに格納するだけの場合は、バイナリシリアル化を使用し、結果のバイト配列をvarbinary(max)に格納することをお勧めします。これは高速で、拡張性に優れています。
ただし、FlowDocumentsをXMLファイルとして既に持っている場合は、シリアル化/逆シリアル化のオーバーヘッドなしで、それらをnvarchar(max)フィールドにダンプする方が簡単です。これは、8k未満の値に対して自明にスケーリングし、10MBのマークに達するまで少しOKを実行します。
于 2010-03-15T15:43:47.693 に答える
1
TextRangeクラスを使用してFlowDocumentをシリアル化できます。RTF形式を使用することもできます。保存:
FlowDocument docToSave; // Lets suppose this var is initialized.
var tr = new TextRange(docToSave.ContentStart,docToSave.ContentEnd);
var dst = new MemoryStream();
tr.Save(dst, DataFormats.Rtf);
dst.Close();
そしてロード:
FlowDocument docToLoad = new FlowDocument();
var tr = new TextRange(docToLoad.ContentStart,docToLoad.ContentEnd);
Stream src; // Lets suppose it is initialized.
tr.Load(src, DataFormats.Rtf);
src.Close();
https://www.wpf-tutorial.com/rich-text-controls/how-to-creating-a-rich-text-editor/も参照してください。
于 2020-07-10T08:14:20.710 に答える