如何将某些内容移至“另一个程序集”?

时间:2019-06-28 04:34:32

标签: c# wpf xaml .net-assembly xml-namespaces

我遇到的情况与这里相同:

WPF Custom Namespaces not working

  

XmlnsDefinition仅适用于其他程序集中的名称空间,不适用于   相同的程序集。

但是,我并没有真正理解“相同的程序集”和“不同的程序集”的确切含义。如果AssemblyInfo.cs和XAML文件位于同一程序集中,如何将AssemblyInfo.cs从该程序集中移到另一个程序中?

1 个答案:

答案 0 :(得分:1)

文档中没有提及任何此类限制。

  

将CLR命名空间映射到部件中的XML命名空间

     

WPF定义XAML处理器使用的CLR属性,以将多个CLR名称空间映射到单个XAML名称空间。此属性XmlnsDefinitionAttribute在生成程序集的源代码中位于程序集级别。 WPF程序集源代码使用此属性将各种常见的命名空间(例如System.WindowsSystem.Windows.Controls映射到http://schemas.microsoft.com/winfx/2006/xaml/presentation命名空间。

     

XmlnsDefinitionAttribute具有两个参数:XML / XAML命名空间名称和CLR命名空间名称。可以存在多个XmlnsDefinitionAttribute来将多个CLR名称空间映射到同一XML名称空间。映射后,如果需要,可以通过在部分类代码隐藏页面中提供适当的using语句来引用这些名称空间的成员而无需完全限定。有关更多详细信息,请参见XmlnsDefinitionAttribute

https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/xaml-namespaces-and-namespace-mapping-for-wpf-xaml#mapping-clr-namespaces-to-xml-namespaces-in-an-assembly