2012-12-18 17 views
-1

我需要在using聲明中使用BitmapImage,這怎麼辦?如何使BitmapImage一次性使用

using (BitmapImage bitmap = new BitmapImage()) 
{ 
    ... 

我猜這樣做是通過擴展IDisposable的方式,但我從來沒有做過那樣的事。

在此先感謝

+0

如果它還不是IDisposable,那麼爲什麼你認爲它需要處置?你爲什麼要在使用聲明中使用它? – itsme86

+0

好吧,是的你說得對,我只是調整了一些代碼,從未使用過'使用'語句 - 我現在已經傾銷了。 – James

回答

1

你不能這樣做。 BitmapImage是密封的,所以你不能從它得出。此外,我不知道爲什麼你會在.NET Framework類中實現IDisposable。你能做的最多的是一個包裝類,它將包含你的BitmapImage,並實現IDisposable

例子:

class DisposableBitmapImageWrapper : IDisposable 
{ 
    public BitmapImage Bitmap { get; private set; } 

    public DisposableBitmapImageWrapper(BitmapImage bitmap) 
    { 
     Bitmap = bitmap; 
    } 

    public void Dispose() 
    { 
     //Do something with the BitmapImage 
    } 
} 
2

原因實施IDisposable是釋放非託管資源的對象時,你不再需要引用對象。由於不存在與BitmapImage相關的任何非託管資源,因此您無需包裝BitmapImage並實施IDisposable

相關問題