我有一个包含两个项目的解决方案:名为“WPFSample”的WPF示例应用程序和名为“ReferencedAssembly”的类库项目。 “WPFSample”引用“ReferencedAssembly”。
项目“ReferencedAssembly”包含几个类。每个类都有自己的命名空间,即“MyClassLibrary”或“MyClassLibrary.MyOtherTypes”。具有名称空间“MyClassLibrary”的示例类称为“电影”。
现在我想使用URL“http://schemas.emmbee.de/”将.NET命名空间映射到XAML命名空间。为此,我在“WPFSample”项目中向AssemblyInfo.vb添加了以下行,然后构建它:
Imports System.Windows.Markup
<Assembly: XmlnsPrefix("http://schemas.emmbee.de/", "ra")>
<Assembly: XmlnsDefinition("http://schemas.emmbee.de/", "ReferencedAssembly.MyClassLibrary")>
<Assembly: XmlnsDefinition("http://schemas.emmbee.de/", "ReferencedAssembly.MyClassLibrary.MyOtherTypes")>
在XAML中,我添加了这样的命名空间定义:
<xmlns:ra="http://schemas.emmbee.de">
如果我想将“Movie”类与
一起使用<ra:Movie/>
我收到错误,名称“电影”在名称空间“http://schemas.emmbee.de”中不存在。
如果我改为以这种方式添加命名空间定义:
<xmlns:ra="clr-namespace:ReferencedAssembly.MyClassLibrary;assembly=ReferencedAssembly">
一切正常。
XmlnsDefinition有什么问题?
答案 0 :(得分:0)
我发现了它。命名空间映射
Imports System.Windows.Markup
<Assembly: XmlnsPrefix("http://schemas.emmbee.de/", "ra")>
<Assembly: XmlnsDefinition("http://schemas.emmbee.de/", "ReferencedAssembly.MyClassLibrary")>
<Assembly: XmlnsDefinition("http://schemas.emmbee.de/", "ReferencedAssembly.MyClassLibrary.MyOtherTypes")>
必须包含在&#34; AssemblyInfo.vb&#34;在汇编&#34; ReferencedAssembly&#34;中,而不是在汇编&#34; WPFSample&#34;。