繁体   English   中英

Asp.Net中的子命名空间太多了? CS0234

[英]Too many sub-namespaces in Asp.Net? CS0234

在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#文件是表单

namespace Project.WebUserControls.ControlType
{
    using System 
    ...etc
    public partial class ClassName : System.Web.UI.UserControl
    {

经过大量的谷歌搜索后,我找到了这个 ,这可能会导致一个解决方案。

在web.config中:

<system.web>
    ...
    <pages>
        ... 
        <namespaces> 
            <add namespace="Project.WebUserControls" />

有趣的是,如果我用namespace="Project.WebUserControls"替换namespace="Project.WebUserControls.ControlType" ,它将无法编译。

这个修复工作大约半个小时,几个版本,但现在已停止工作。 不,我没有更改任何代码使其停止工作。

有任何想法吗?


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

不知道为什么会这样。 路径名称远低于255个字符。


第二天,再次破碎......没有改变任何事情。

听起来像vstudio / IIS所做的卷影副本没有被正确地重建/使用。

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

听起来更像是Visual Studio问题而不是C#/ .NET问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM