同一組件中的同一行代碼適用於一個測試夾具,但不適用於另一個測試夾具。下面是代碼行:訪問代碼中的資源字典wpf
var dic = new ResourceDictionary { Source = new Uri("pack://application:,,,/MyApp.Wpf;component/ImageResources.xaml") };
我在其他測試夾具得到的錯誤是System.UriFormatException無效的URI:指定無效的端口。
uri字符串也適用於xaml。有沒有更好的方法來加載代碼中的資源字典?
乾杯,
Berryl
=== UPDATE ===
正如我在this posting發現,無效端口正在發生,因爲包裝方案未註冊,可以用代碼來完成像這樣:
if (!UriParser.IsKnownScheme("pack"))
UriParser.Register(new GenericUriParser(GenericUriParserOptions.GenericAuthority), "pack", -1);
我猜測,測試夾具,這是能夠加載字典中沒有錯誤的包方案是因爲SUT是一個用戶控件存在,並且以某種方式重新加載當用戶控件的一個實例被創建時來源。