代码之家  ›  专栏  ›  技术社区  ›  Otto Abnormalverbraucher

引用的外部命名空间与本地命名空间崩溃。

  •  0
  • Otto Abnormalverbraucher  · 技术社区  · 7 年前

    我有个项目叫 This.Is.My.Project ,其中包含命名空间 This.Is.My.Project.Namespace . 此命名空间包含一个usercontrol类,该类派生自名为 This.Is.Another.Project.Namespace .

    namespace This.Is.My.Project.Namespace {
       public partial class MyClass : This.Is.Another.Project.Namespace.ExternalClass {
         ...
       }
    }
    

    现在编译器在单词下面加下划线 Another 并抱怨以下信息:

    命名空间中不存在“另一个”类型或命名空间名称“..M.Project,这是”(是否缺少程序集引用?)

    显然,编译器正在本地命名空间中查找外部类,因为第一个“子”命名空间即 This.Is “是平等的。实际上,它应该更像是一个单独的名称空间,而不是四个嵌套的名称空间,如下所示: (I.Am.Not.Nested).ActualNamespace.MyClass 所以对我来说 (This.Is.My.Project).Namespace.MyClass .

    我可以通过以下方式来消除错误背后的代码 using This.Is.Another.Project.Namespace 但我在XAML方面遇到了同样的问题,我不能使用任何包含。

    <ext:ExternalClass x:Class="This.Is.My.Project.Namespace.MyClass"
                       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                       xmlns:ext="http://schemas.external.com/winfx/2008/xaml/external">
    </dxe:ComboBoxEdit>
    

    我可以从中手动重命名命名空间 此.is.my.project.namespace That.Is.My.Project.Namespace 并消除错误,但我想让名称空间听起来尽可能接近用户控件的行为。如果可能的话,我甚至会将类添加到外部命名空间。是否有方法可以保留命名空间名称并消除此错误,或者必须重命名命名空间?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Eibi    7 年前

    如果在该视图后面的代码中添加using,那么它是否接受xaml中的名称空间呢?

    顺便说一句,使用最能代表其含义的不同名称空间命名不同的程序集是一种好的做法。

    推荐文章