2014-11-17 64 views
1

我有我的主應用程序使用MarkupExtension另一個項目。我加了參考,我說這也是在XAML文件,但是當我嘗試使用它,我得到錯誤:如何使定製MarkupExtension從XAML文件可見/可訪問?

error MC3048: '{loc:Translate View3dDialog}' value is not a valid MarkupExtension expression. 
Cannot resolve 'Translate' in namespace 'clr-namespace:TranslationByMarkupExtension'. 
'Translate' must be a subclass of MarkupExtension. Line 7 Position 9. 

我有TranslationExtension的MarkupExtension(這是當然的公衆)的子類。

我重建了整個解決方案 - 沒有變化。

回答

2

我假設你有xmlns:loc指向clr-namespace:TranslationByMarkupExtension?該命名空間是否在同一個程序集中?如果是這樣,那麼你可能會遇到問題VS(不)能夠讀取更新的程序集,因爲程序集尚未構建。您可以嘗試將擴展提取到另一個將與XAML分開編譯/構建的程序集。 (可能的情況:XAML編譯器需要讀取擴展名,並且由於它們來自當前程序集,所以存在問題,因爲當前程序集尚未生成,因爲XAML沒有編譯=閉環; 不需要試圖強制解決這個問題,有可能,編譯器可能會被愚弄,以讀取程序集的「舊版/舊版」版本,但這會導致很多其他的邪惡和難以追蹤問題..)。

如果您已在其他裝配中使用,請確保xmlns:loc指向clr-namespace:TranslationByMarkupExtension;assembly=MyAssemblyWithTheExtension,也許您只是簡單地忘記了assembly部分。

+0

非常感謝,我忘了添加'assembly'部分。 – greenoldman