オブジェクトが実装する場合IDisposable
は、不要になったときに破棄するのが良いことだと思います。
DataObject
インターフェイスの基本的な実装を提供するIDataObject
ので、そこから派生してみませんか。
public sealed class HtmlDataObject : DataObject, IDisposable
{
protected MemoryStream HtmlMemoryStream { get; set; }
public HtmlDataObject(MemoryStream memoryStream, string fallBackText)
{
HtmlMemoryStream = memoryStream;
SetText(fallBackText);
SetData(DataFormats.Html, false, HtmlMemoryStream );
}
public void Dispose()
{
HtmlMemoryStream .Dispose();
}
}
したがって、メソッドを変更できます。
public HtmlDataObject GetClipboardData()
{
return new HtmlDataObject(this.GenerateHtml(), this.fallbackText.ToString());
}
そして、使い終わったら、それをusing statement
またはに入れることができます。Dispose()
最終的な考え:クリップボードのデータについて心配する必要はありませんDataObject
。アプリケーションを終了するといずれにせよ破棄され、クリップボードに保存した内容が失われるからです。
http://msdn.microsoft.com/en-us/library/office/gg278673.aspx
ストリームを破棄した後、および/またはアプリケーションが終了したときにストリームを永続化したい場合は、パラメーター =でClipboard.SetDataObjectを使用する必要があります。copy
true