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

时间:2010-05-03 19:05:32

标签: wpf xaml

为了方便起见,我已经开始使用XmlnsDefinition属性将一些CLR命名空间绑定到一个xml中。

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

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

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

2 个答案:

答案 0 :(得分:41)

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

答案 1 :(得分:1)

请改用clr-namespace。例如:

xmlns:controls="clr-namespace:Rhapsody.UI.Main.Controls
相关问题