我已经开始使用 XmlnsDefinition 属性将一些 CLR 命名空间结合到一个单一的 xmlns 中,以便在 XAML 中使用。
不幸的是,这似乎只在使用外部程序集时有效。如果我在与我从 XmlnsDefinition 引用的命名空间中的类型相同的程序集中有一个 XAML 文件,那么编译器会给出关于我定义的 xmlns 中不存在的类型的错误。
将类型移动到外部程序集可以解决此问题。
有没有办法在程序集上使用 XmlnsDefinition 并通过 XAML 在该程序集中使用它?
最佳答案
抱歉不行。必须在构建程序集之前分析 XAML 文件,以便生成要包含在程序集中的 XAML 隐含的代码。 XAML 编译器生成代码隐藏文件(例如以 .g.cs 结尾的文件),然后这些文件成为包含 XAML 文件的程序集的一部分。由于程序集尚未构建,XAML 编译器无法加载它以确定已指定 XmlnsDeclaration 属性。
关于wpf - 如何使 XmlnsDefinition 在本地程序集上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2760504/