WPF デスクトップ アプリケーションの Windows クリップボードにいくつか問題があります。クリップボードのコンテンツを取得し、何かを実行して (このコンテンツに書き込むことなく、読み取りのみ)、コンテンツをクリップボードに再送信しようとしました。実行されますが、コンテンツを再送信した後、クリップボードのコンテンツを取得して再度読み取ろうとすると、OutOfMemory 例外が発生します。
検索後、次のリンクを見つけました: http://www.grumpydev.com/2009/09/05/system-outofmemoryexception-gotcha-using-clipboard-getdata-in-wpf/
シリアル化の問題が原因である可能性があります。データをクリップボードに送信すると、シリアル化属性が失われるか、データが失われると思います。
これが私のコードです:
var data = System.Windows.Clipboard.GetDataObject();
// Read "data"
System.Windows.Clipboard.Clear();
System.Windows.Clipboard.SetDataObject(data, true);
var dataTwo = System.Windows.Clipboard.GetDataObject();
// Read "dataTwo" ==> OutOfMemoryException
データには私のプロジェクトのタイプがないことに注意してください。それはすべての可能性があります(フォトショップ、エクセル、画像、テキスト、バイナリ...)
誰でもこれを修正する考えがありますか?
よろしくお願いします