首页 > 解决方案 > 如何将某些东西移动到“另一个程序集”?

问题描述

我遇到的情况和这里一样:

WPF 自定义命名空间不起作用

XmlnsDefinition 仅适用于其他程序集中的命名空间,而不适用于同一程序集中。

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

标签: c#wpfxaml.net-assemblyxml-namespaces

解决方案


文档并未提及此类任何限制。

将 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-大会内


推荐阅读