我有个项目叫
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
并消除错误,但我想让名称空间听起来尽可能接近用户控件的行为。如果可能的话,我甚至会将类添加到外部命名空间。是否有方法可以保留命名空间名称并消除此错误,或者必须重命名命名空间?