两个“网站”命名空间?

时间:2016-08-31 16:11:45

标签: asp.net webforms

将ASP.NET 4.6与WebForms结合使用。在App_Code中创建了一个名为Settings:

的静态类
public static class Settings
{
    // ... code ...
}

当尝试从App_Code文件夹里面的其他静态类访问时获取:

enter image description here

还注意到我有两个网站上下文:

enter image description here

尝试将Settings类放在命名空间“Website”中;还是有同样的问题。只有在我声明类如下时才会解决问题:

internal static class Settings
{
    // ... code ...
}

我怀疑我在命名空间的某处做错了;但我不确定是什么/在哪里。是什么导致解决方案有两个“网站”命名空间?

进一步挖掘后,我发现有两个网站“容器” - 而不是命名空间。

按名称空间引用视图:

enter image description here

“容器”引用视图:

enter image description here

仍然在努力解决这个问题......

2 个答案:

答案 0 :(得分:1)

您没有2个网站上下文,下拉列表会显示您的“当前选定”上下文和“可用”上下文。命名空间“网站”不存在,这只是您的网站项目名称。

当你发现你的网站所在的命名空间时(Intellisense应该告诉你,如果你在你的网站上创建一个新类并将鼠标悬停在它上面。),只需将你的静态属性包围在同一个命名空间中。

另一种方法是定义一个新的命名空间来保存静态成员,然后从你的网站引用该命名空间。

答案 1 :(得分:0)

'构建行动'对于文件本身设置为'内容'而不是编译'。出于某种原因,我随时向该解决方案中的项目添加新类,他们默认为“内容”。一旦我开始编译,我就回到了一个网站'容器和一切都按预期工作。

Build action