首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.Net中的子名称空间太多了吗?CS0234

Asp.Net中的子名称空间太多了吗?CS0234
EN

Stack Overflow用户
提问于 2010-11-16 18:09:03
回答 2查看 449关注 0票数 3

在Asp.Net项目上工作,添加一个新控件(ascx),会遇到一个奇怪的CS0234问题。基本上,编译器找不到一个完全限定的命名空间。令人感到奇怪的是,有时它能找到它,有时它却找不到。每次我做一个构建时,它都无法在不同的文件中找到它。也就是说,有时它会建造。有时它在文件a和b中找到它,但在c和d中找不到它;有时它在a、b和c中找到名称空间,但没有找到d。

添加在类ClassName (ClassName.ascx和ClassName.ascx.cs文件)中定义的新控件。

路径是:C:.\Project\WebuserControls\ControlType

命名空间是Project.WebUserControls.ControlType。

在我调用Project.WebUserControls.ControlType.ClassName.SomeMethod();的整个项目中,当我编译时,我得到错误"CS0234类型或名称空间名称'Project.WebUserControls.ControlType‘在类或名称空间'Project.WebUserControls’中不存在(您是否缺少程序集引用?)尽管它确实存在于该名称空间中。此外,Intellisense无法找到名称空间或其中的任何内容。

c#文件的形式为

代码语言:javascript
复制
namespace Project.WebUserControls.ControlType
{
    using System 
    ...etc
    public partial class ClassName : System.Web.UI.UserControl
    {

在谷歌上搜索了很多信息之后,我找到了this,这可能会带来一个解决方案。

在web.config中:

代码语言:javascript
复制
<system.web>
    ...
    <pages>
        ... 
        <namespaces> 
            <add namespace="Project.WebUserControls" />

有趣的是,如果我用namespace="Project.WebUserControls"替换namespace="Project.WebUserControls.ControlType",它就不会编译。

这个修复工作了大约半个小时,几个构建,但现在已经停止工作。不,我没有改变任何代码让它停止工作。

有什么想法吗?

几个小时后:将ClassName (类和文件)分别移到名称空间和路径的一个级别似乎解决了问题。也就是说,它现在位于名称空间Project.WebUserControls和路径c上:..\Project\WebUserControls\

不知道为什么会这样。路径名很好地低于255个字符。

第二天又坏了..。什么都没改变。

EN

回答 2

Stack Overflow用户

发布于 2010-11-16 18:13:14

听起来好像vstudio/IIS所做的影子复制没有被正确地重建/使用。

尝试内置的开发人员服务器(在vstudio中)或重新启动IIS

票数 0
EN

Stack Overflow用户

发布于 2010-11-16 20:25:41

在我看来,听起来更像是问题,而不是C#/.NET问题。

澄清一下:只有在添加了某个类之后才会得到这些错误,然后尝试访问它,或者在每次构建之后随机获得这些错误,即使您没有添加任何内容?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4197436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档