我有一个名为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
下划线并抱怨以下消息:
名称空间“ This.Is.My.Project.This.Is”中不存在类型或名称空间名称“另一个”(您是否缺少程序集引用?)
很显然,编译器正在我的本地名称空间中寻找外部类,因为第一个“子”名称空间即“ This.Is
”是相等的。实际上,应该更像项目名称是单个名称空间,而不是四个嵌套名称空间,例如:(I.Am.Not.Nested).ActualNamespace.MyClass
在我的情况下是(This.Is.My.Project).Namespace.MyClass
。
我可以通过包含using This.Is.Another.Project.Namespace
来消除错误背后的代码,但是我在Xaml方面遇到了相同的问题,无法使用任何include。
<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>
我可以手动将名称空间从This.Is.My.Project.Namespace
重命名为That.Is.My.Project.Namespace
并消除错误,但是我想让名称空间听起来尽可能地接近用户控件的行为。如果可能的话,我什至将类添加到外部名称空间。有什么方法可以保留我的命名空间名称并摆脱此错误,还是必须重命名命名空间?
答案 0 :(得分:0)
如果您在该视图后面的代码中添加了using,那么它会接受xaml中的名称空间吗?
顺便说一句,优良作法是用最能代表其含义的不同命名空间命名不同的程序集。