2010-10-25 48 views
1

考慮3個組件:Silverlight和XmlnsDefinition

  • 入口點(SL應用)
  • ClassLibraryA
  • ClassLibraryB

哪裏有一個類A在ClassLibraryAand類B在ClassLibraryB

EntryPoint對ClassLibrar的引用yA和ClassLibraryA具有對ClassLibraryB的引用。

在ClassLibrary1的的AssemblyInfo我有以下代碼:

[assembly: XmlnsPrefix("http://schemas.test.com/sl/", "test")] 
[assembly: XmlnsDefinition("http://schemas.test.com/sl/", "ClassLibraryA")] 
[assembly: XmlnsDefinition("http://schemas.test.com/sl/", "ClassLibraryB", AssemblyName = "ClassLibraryB")] 

AB都是FrameworkElement小號

的問題是,在我的MainPage,當我有這樣的XAML:

xmlns:test="http://schemas.test.com/sl/" 

以下不起作用:

<test:B x:Name="bar" /> 

,而這個工程:

<test:A x:Name="foo" /> 

爲什麼不呢?

+1

是ClassLibrary1的= = ClassLibraryA?你提到3個程序集,然後開始討論這3個程序集中沒有列出的ClassLibrary1和ClassLibrary2? – 2010-10-25 14:27:40

+0

對不起,我的錯誤。 – Snake 2010-10-26 05:50:42

回答

1

@Snake

在ClassLibraryA的AssemblyInfo.cs中,你需要具備以下

[assembly: XmlnsPrefix("http://schemas.test.com/sl/", "test")] 
[assembly: XmlnsDefinition("http://schemas.test.com/sl/", "ClassLibraryA")] 

並在你需要有以下ClassLibraryB的AssemblyInfo.cs中,

[assembly: XmlnsPrefix("http://schemas.test.com/sl/", "test")] 
[assembly: XmlnsDefinition("http://schemas.test.com/sl/", "ClassLibraryB")] 
+0

好的謝謝:D但是那麼XmlnsDefinition上的AssemblyName是什麼? :) – Snake 2010-10-25 19:40:21

+0

我以前沒有使用AssemblyName。所以沒有線索。但是,看到這個鏈接。 http://msdn.microsoft.com/en-us/library/system.workflow.componentmodel.serialization.xmlnsdefinitionattribute.aspx。 '這是當前程序集的名稱。它定義了在當前程序集中定義的公共語言運行庫名稱空間與XML名稱空間之間的映射 – 2010-10-25 20:31:41