我正在使用静态资源字典,其初始化方式如下:
static ResourceDictionary resource = new ResourceDictionary()
{
Source = new Uri(
"pack://application:,,,/CommonResources;component/ApplicationData.xaml")
};
代码在过去几个月一直运行完美,但在最近几天我开始遇到以下问题:
除了上述初始化之外,还可以通过访问所需项来从字典中读取数据。抛出了“System.Xaml.XamlParseException”类型的异常。 在 System.Windows.Baml2006.Baml2006Reader.ReadObject(KeyRecord record) 处 在 System.Windows.ResourceDictionary.CreateObject(KeyRecord key) 处 在 System.Windows.ResourceDictionary.RealizeDeferContent(Object key, Object& value, Boolean& canCache) 处 在 System.Windows.ResourceDictionary.GetValueWithoutLock(Object key, Boolean& canCache) 处 在 System.Windows.ResourceDictionary.GetValue(Object key, Boolean& canCache) 处
if (resource.Contains(key))
{
return resource[key];
}
唯一需要修改的代码可能与多个线程同时访问字典有关。值得一提的是,相同的代码有时可以完美运行,有时会抛出上述异常(非常不一致)。
如果对异常本身或问题有任何见解,我将不胜感激。