为什么生成的XAML会吐出不需要的命名空间?

时间:2010-04-06 16:51:13

标签: wpf visual-studio xaml

我有一个非常简单的XAML表单,它有一个名称空间定义。出于某种原因,当Visual Studio将XAML文件处理到它的组件.g.cs时,它在顶部粘贴了一堆我没有在XAML或后面的代码中要求的命名空间定义,并且它们是名称空间在我的项目中不再存在。因此该项目无法编译。

为什么Visual Studio在我生成的XAML .g.cs文件中使用'using'语句中的任意命名空间?这导致我的整个项目破裂。这个.xaml文件没有一次引用有问题的命名空间,所以这很麻烦。

1 个答案:

答案 0 :(得分:5)

我曾经发生过这件事。实际上,有几次。

我一直忘记的是,我深埋在我的项目中,我有一个名为XmlnsDefs.cs的小文件。

在该文件中,我拥有所有这些漂亮的整洁xmlns定义:

[assembly: XmlnsDefinition("http://www.HurrDurr.com/2010/Foo", "Foo.Bar")]
[assembly: XmlnsDefinition("http://www.HurrDurr.com/2010/Foo", "Foo.Bar.Baz")]

每个人在我的xaml表单的.g.cs文件中最终都是using。这很好用,除了我重构了一些名称空间。它打破了我的双向飞碟的软糖。但是,一旦我修改我的defs以匹配我当前的命名空间,一切都很顺利。一切都很好。