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下?
答案 0 :(得分:2)
当然,您只需要将两个名称空间映射到同一个URL:
在A的AssemblyInfo.cs
中[assembly: XmlnsDefinition("http://www.cmp.com/controls", "A.Controls")]
[assembly: XmlnsDefinition("http://www.cmp.com/controls", "B.Controls.Extensions")]
然后,您只需要声明一个XMLNS来访问两个命名空间中的类型:
xmlns:controls="http://www.cmp.com/controls"