我想知道某人之前是否曾见过这种情况,或者对可能导致这种情况的人有任何建议。我有一个名为Dashboard
的自定义类,它存在于名为Dashboard.Data.Client
的项目中。在同一个项目中,如果我尝试引用类的命名空间,例如:
using Alliance.Dashboard.Data.Client.Models;
然后我不能使用Dashboard
类型。但是,在我需要使用Dashboard
的任何地方,我可以输入完全限定的名称,它可以正常工作。例如:
Alliance.Dashboard.Data.Client.Models.Dashboard myDashboard = new Alliance.Dashboard.Data.Client.Models.Dashboard();
一些注意事项我相信你会想知道:
如果我只是在课程中输入Dashboard
,然后尝试解决它,则该选项不可用。
如果存在冲突的命名空间,我之前已经看到过此问题。在这种情况下,必须提供完全限定的名称。这里情况不同。没有冲突的命名空间。
其他类在此项目中解决得很好。事实上,这是一个场景:从IDashboardRepository
这个问题存在尝试按照我的描述声明Dashboard
。 IDashboardRepository
位于同一项目中,但位于不同的名称空间中:Alliance.Dashboard.Data.Client.Interfaces
。但是,反向工作正常。换句话说,我可以将接口命名空间用作Dashboard
中的using语句,但不使用完全限定名称的接口内的Dashboard
。
供参考,以下是我的Dashboard
类的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Alliance.Dashboard.Data.Client.Models
{
public class Dashboard
{
public System.Guid DashboardID { get; set; }
public string DashboardName { get; set; }
public byte[] Instance { get; set; }
public bool IsDeleted { get; set; }
public byte[] Concurrency { get; set; }
}
}
答案 0 :(得分:2)
嗯,我觉得这个很傻。简单地说,命名空间和类名是相同的。编译器认为我已经输入了命名空间目录的开头而不是类名。再次感谢您花时间帮助另一个指关节头。