C# 如何使BitmapImage成为一次性的

C# 如何使BitmapImage成为一次性的,c#,.net-4.5,windows-store,C#,.net 4.5,Windows Store,我需要在using语句中使用位图图像,如何做到这一点 using (BitmapImage bitmap = new BitmapImage()) { ... 我猜这样做的方法是扩展IDisposable,但我以前从未这样做过 提前谢谢你不能这么做位图图像已密封,因此无法从中派生。此外,我不知道为什么要在.NET Framework类中实现IDisposable。您最多只能使用一个包装器类,它将包含BitmapImage,并实现IDisposable 例如: class Disposa

我需要在
using
语句中使用
位图图像
,如何做到这一点

using (BitmapImage bitmap = new BitmapImage())
{
    ...
我猜这样做的方法是扩展
IDisposable
,但我以前从未这样做过


提前谢谢

你不能这么做<代码>位图图像已密封,因此无法从中派生。此外,我不知道为什么要在.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
    }
}

实现
IDisposable
的原因是,当您不再需要引用某个对象时,可以释放该对象中的非托管资源。您不需要包装
BitmapImage
并实现
IDisposable
,因为没有任何与
BitmapImage

关联的非托管资源。如果它还没有IDisposable,那么为什么您认为它需要被释放?为什么你需要在using语句中使用它呢?好的,是的,你是对的,我只是在调整一些代码,以前从未使用过
using
语句,现在我已经放弃了。