.net 在XAML中导入命名空间时会发生什么?
我有一个软件项目,我正在WPF中与其他几个“助手”程序集一起工作,其结构如下:.net 在XAML中导入命名空间时会发生什么?,.net,wpf,xaml,namespaces,xml-namespaces,.net,Wpf,Xaml,Namespaces,Xml Namespaces,我有一个软件项目,我正在WPF中与其他几个“助手”程序集一起工作,其结构如下: 控件(WPF自定义控件库) 图书馆(C类图书馆) 主要项目(WPF应用) 在“控件”程序集中,我有几个名称空间将相关类型的控件分组在一起。这使得管理程序集中的代码变得容易,因为名称空间与文件夹名称相同 然而,当我在项目的其他部分使用这些控件时,这可能会有点混乱,特别是当我有时不得不在同一个文件中使用多个名称空间声明来引用“控件”程序集的不同部分时 我一直在想,把我所有的控件放在一个更集中的名称空间中是否更有意义,
- 控件(WPF自定义控件库)
- 图书馆(C类图书馆)
- 主要项目(WPF应用)
[assembly: XmlnsDefinition("http://mycompany.com/controls", "MyCompany.Controls.Core")]
[assembly: XmlnsDefinition("http://mycompany.com/controls", "MyCompany.Controls.Primitives")]
在引用此程序集的程序集中,可以执行以下操作:
...
xmlns:mycontrols="http://mycompany.com/controls"
...
<mycontrols:Foo ... />
<mycontrols:Bar ... />
。。。
xmlns:mycontrols=”http://mycompany.com/controls"
...
因此,
Foo
控件可以位于C#名称空间MyCompany.Controls.Core
中,Bar
控件可以位于C#名称空间MyCompany.Controls.Primitives中,但两者都可以使用相同的XAML名称空间进行引用(http://mycompany.com/controls
,这里用mycontrols
前缀别名)。它的行为应该与代码类似,因为xaml不是被解释的,而是被编译的,当它被编译时,它由使用它的CODIC生成和组装,创建一个定义良好的对象。行为类似于c#(在您的例子中)对于importsAh的管理,这听起来像是我一直在寻找的解决方案。非常感谢。