'使用'尚未检测到命名空间检查的客户端概要分析

时间:2012-01-06 23:52:10

标签: c# using

我有一个C#解决方案,由Visual Sudio 2010中的三个项目组成。一个是X.Domain(类库),第二个是X.UnitTest,第三个是X.WebUI(MVC3)。我遇到了使用using语句从X.WebUI命名空间引用X.Domain命名空间的问题。我认为这是一个客户端分析问题,并且验证了所有使用“.Net Framework 4”作为目标框架的项目。我检查以确保X.WebUI的项目依赖项包含namesapce X.Domain。我得到的确切错误是: 命名空间'X'中不存在类型或命名空间名称'Domain'(您是否缺少程序集引用)。我试图在X.Domain.Abstract中使用的接口的错误:无法找到类型或命名空间名称'IPersonRepository'(您是否缺少using指令或程序集引用)

在X.Domain命名空间/项目中,有公共方法,所以我不确定它为什么没有公开。我在stackoverflow上查看了这些链接,但是他们没有解决问题。 Visual Studio 2010 suddenly can't see namespace?The type or namespace name could not be foundThe type or namespace 'MyNamespace' does not exist etc

值得一提的是,有人发布说它可能与错过配置的global.asax文件有关,这里 Type or namespace name does not exist 在那个链接,但我不确定。可能就是这样,所以我也发布了我的Global.asax文件。当我尝试使用ninject MVC3创建'PersonController'时,我注意到了这个问题,我使用Remo.gloo的博客来帮助我创建发布在此http://www.planetgeek.ch/2010/11/13/official-ninject-mvc-extension-gets-support-for-mvc3/的Global.asax文件,并遵循一些额外的代码在Pro ASP.NET MVC3框架书的第164页上创建控制器。

PersonController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using KLTMCInsight.Domain.Abstract;


namespace KLTMCInsight.WebUI.Controllers
{
    public class PersonController : Controller
    {
        private readonly IPersonRepository repository;

        public PersonController(IPersonRepository personRepository)
        {
            repository = personRepository;
        }
    }
}

Global.asax中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Reflection;
using Ninject;
using Ninject.Modules;
using Ninject.Web.Mvc;

namespace KLTMCInsight.WebUI
{

    public class MvcApplication : NinjectHttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional    }
            );

        }

        protected override IKernel CreateKernel()
        {
            var kernel = new StandardKernel();
            kernel.Load(Assembly.GetExecutingAssembly());
            return kernel;
        }


        protected override void OnApplicationStarted()
        {
            base.OnApplicationStarted();

            AreaRegistration.RegisterAllAreas();
            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

如果我错过了你需要的东西,我会非常乐意发布它。再次感谢您的帮助 - 非常感谢。

1 个答案:

答案 0 :(得分:0)

以下是解决方案:

我使用了“Project”文件菜单下列出的“Project Dependencies”框来选择X.WebUI项目的依赖项。即使在其中我已经检查了X.WebUI项目的框以依赖于X.Domain项目...... VS2010从未创建过引用。

为了解决这个问题,它是一个通过手动右键单击X.WebUI下的References文件夹,并通过该窗口添加对X.Domain的引用来进行简单修复。参考添加问题解决了。

不确定为什么引用不是首先从“项目依赖性”框中提取的,但是如果有人遇到同样的问题 - 这应该提醒您检查是否实际引用了参考。