次の方法で初期化される静的リソース ディクショナリを使用しています。
static ResourceDictionary resource = new ResourceDictionary()
{
Source = new Uri(
"pack://application:,,,/CommonResources;component/ApplicationData.xaml")
};
コードは過去数か月間完全に機能していましたが、ここ数日で次の問題が発生し始めました。
タイプ 'System.Xaml.XamlParseException' の例外がスローされました。System.Windows.Baml2006.Baml2006Reader.ReadObject(KeyRecord レコード) で System.Windows.ResourceDictionary.CreateObject(KeyRecord キー) で System.Windows.ResourceDictionary.RealizeDeferContent(オブジェクト キー、オブジェクトと値、ブール値と canCache) で System.Windows.ResourceDictionary System.Windows.ResourceDictionary.GetValue(オブジェクト キー、ブール値、canCache) の .GetValueWithoutLock(オブジェクト キー、ブール値、canCache)
上記の初期化とは別に、データは必要な項目にアクセスすることによって辞書から読み取られます。
if (resource.Contains(key))
{
return resource[key];
}
コードへの唯一の変更は、多くのスレッドが同時にディクショナリにアクセスすることに関連している可能性があります。同じコードが完全に機能することもあれば、上記の例外がスローされることもあります (非常に一貫性がありません)。
例外自体または一般的な問題に関する洞察をいただければ幸いです。