如何使XmlnsDefinition在本地程序集上工作?

sco*_*obi 34 wpf xaml

我已经开始使用XmlnsDefinition属性将一些CLR命名空间绑定到一个xmlns中,以方便XAML.

不幸的是,这似乎只适用于使用外部程序集.如果我在与我从XmlnsDefinition引用的命名空间中的类型相同的程序集中有一个XAML文件,那么编译器会给出我正在定义的xmlns中不存在的类型的错误.

将类型移动到外部程序集可以解决问题.

有没有办法在程序集上使用XmlnsDefinition并通过XAML从该程序集中使用它?

chu*_*ckj 42

很不幸的是,不行.必须在构建程序集之前解析XAML文件,以便生成XAML隐含的代码以包含在程序集中.XAML编译器生成文件后面的代码(以.g.cs结尾的文件),然后这些文件成为包含XAML文件的程序集的一部分.由于程序集尚未构建,因此XAML编译器无法加载它以确定已指定XmlnsDeclaration属性.

  • 这对我来说没有意义。当您在 XAML 中引用自定义类时,XAML 编译器如何知道如何使用它们?这不是同一件事吗?这些类位于同一个程序集中,为什么 XAML 编译器可以找到这些类,但找不到 XmlnsDefinition 属性? (2认同)