【发布时间】:2011-08-22 11:36:48
【问题描述】:
基本上,我记得曾经有一段时间您可以使用以下内容:<?Mapping ... >(它似乎不再起作用——也许已弃用?)
我知道我可以像这样映射我的 XML 命名空间...
xmlns:xyzcon="clr-namespace:XYZ.Wpf.Controls"
xmlns:xyzcom="clr-namespace:XYZ.Wpf.Commands"
但是,我也知道我可以像这样映射我的 XML 命名空间(更干净)
[assembly: XmlnsPrefix("http://schemas.mycompany.com/netfx/xaml/presentation", "xyz")]
[assembly: XmlnsDefinition("http://schemas.mycompany.com/netfx/xaml/presentation", "XYZ.Wpf.Controls")]
[assembly: XmlnsDefinition("http://schemas.mycompany.com/netfx/xaml/presentation", "XYZ.Wpf.Commands")]
这使得它非常易于使用,因为有了 l、lv 等前缀,我可以让我的所有 CLR 命名空间指向同一个 XML 命名空间...
xmlns:xyz="http://schemas.mycompany.com/netfx/xaml/presentation"
该行让我可以访问 XYZ.Wpf.Controls 和 XYZ.Wpf.Commands。问题是这仅在程序集已编译时才有效。在同一个程序集中工作时,我不能使用这个技巧。
基本上,在同一个应用程序或程序集中,我想在全球范围内将不同的 CLR 命名空间映射到 SAME XML 命名空间(这样,在我的整个应用程序中,我只需包含那个 XML 命名空间)。有什么办法吗?
【问题讨论】:
标签: wpf namespaces assemblies xml-namespaces