带有BitmapImages字典的单例类的示例

时间:2013-06-18 17:25:59

标签: c# dictionary singleton bitmapimage

我知道这是一个简单的问题,但我无法在任何地方找到一个例子。请把它想象成帮助一个新手。我需要创建一个单例类,这样我就可以跨多个文件访问BitmapImages字典。

字典是:

ConcurrentDictionary<string, BitmapImage> PlantImageDictionary;

有人可以发一个如何创建/实例化这个的例子吗? 有人可以发一个如何调用这样一个字典的例子吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果您只是想从字典中阅读,则不需要ConcurrentDictionary。事实上,我不建议公开Dictionary。相反,我会公开你需要的最少数量的方法。如果您想要的只是按键查找内容的能力,那么只提供该方法。

这是一个非常简单的单身人士,可以满足您的要求。

public sealed class ImageCache
{
    private static readonly Dictionary<string, Bitmap> Images;

    static ImageCache()
    {
        Images = new Dictionary<string, Bitmap>();
        // load XML file here and add images to dictionary
        // You'll want to get the name of the file from an application setting.
    }

    public static bool TryGetImage(string key, out Bitmap bmp)
    {
        return Images.TryGetValue(key, out bmp);
    }
}

你可能应该花一些时间研究Singleton模式并寻找其他选择。虽然以上将完成这项工作,但这不是最佳做法。例如,一个明显的问题是它需要外部知道XML文件的位置,这使得它很难适应测试框架。有更好的选择,但这应该让你开始。