我知道这是一个简单的问题,但我在任何地方都找不到示例。请将此视为帮助新手。我需要创建一个单例类,以便可以跨多个文件访问 BitmapImages 字典。
字典是:
ConcurrentDictionary<string, BitmapImage> PlantImageDictionary;
有人可以发布一个如何创建/实例化的示例吗?有人可以发布一个如何调用这样一个字典的例子吗?
提前致谢。
我知道这是一个简单的问题,但我在任何地方都找不到示例。请将此视为帮助新手。我需要创建一个单例类,以便可以跨多个文件访问 BitmapImages 字典。
字典是:
ConcurrentDictionary<string, BitmapImage> PlantImageDictionary;
有人可以发布一个如何创建/实例化的示例吗?有人可以发布一个如何调用这样一个字典的例子吗?
提前致谢。
如果您只是要从字典中阅读,则不需要ConcurrentDictionary
. 事实上,我不建议公开 a 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 文件的位置,这使得它有点难以适应测试框架。有更好的选择,但这应该让你开始。