WPF - 结合xmlns

时间:2015-08-19 13:04:40

标签: wpf xml-namespaces assemblyinfo

1)我有3个组件。 A,B和UI

2)B引用A。

3)UI引用B和A.

4)在A的AssemblyInfo.cs

     [assembly: XmlnsDefinition("http://www.cmp.com/a", "A.Controls")]

5)在B的AssemblyInfo.cs

     [assembly: XmlnsDefinition("http://www.cmp.com/b", "B.Controls.Extensions")]

6)在我的UI中,我有一个视图

<UserControl  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:a="http://www.cmp.com/a"
    xmlns:b="http://www.cmp.com/b">

  <TextBox a:TextBoxExtensions.Ext1="Red"
           b:TextBoxExtensions.Ext1="Blue" />

</UserControl> 

有什么方法可以将“http://www.cmp.com/a”和“http://www.cmp.com/b”结合在相同前缀下的相同xmlns或atlist下?

1 个答案:

答案 0 :(得分:2)

当然,您只需要将两个名称空间映射到同一个URL:

  • 在A的AssemblyInfo.cs

    [assembly: XmlnsDefinition("http://www.cmp.com/controls", "A.Controls")]
    
  • B的AssemblyInfo.cs中的
  • [assembly: XmlnsDefinition("http://www.cmp.com/controls", "B.Controls.Extensions")]
    

然后,您只需要声明一个XMLNS来访问两个命名空间中的类型:

xmlns:controls="http://www.cmp.com/controls"