代码分析错误:在命名空间中声明类型

Posted

技术标签:

【中文标题】代码分析错误:在命名空间中声明类型【英文标题】:Code Analysis Error: Declare types in namespaces 【发布时间】:2010-05-04 03:18:46 【问题描述】:

是VS2010,我分析了我的代码,得到了这个错误:

Warning 64  CA1050 : Microsoft.Design : 'ApplicationVariables' should be declared inside a namespace.   C:\My\Code\BESI\BESI\App_Code\ApplicationVariables.vb   10  C:\...\BESI\

Here 是有关错误的一些参考信息。本质上,我尝试创建一个类,用于以类型化的方式访问 Application 对象中的数据。

警告消息说,除非我将 (ApplicationVariables) 类放在命名空间中,否则我将无法使用它。但我正在使用它,那有什么用呢?

另外,here 是另一个 *** 文章的链接,该文章讨论了如何在 VS2008 中禁用此警告,但您将如何在 2010 年禁用它? VS2010 没有 GlobalSuppressions.vb 文件。

这是它抱怨的代码:

Public Class ApplicationVariables

    'Shared Sub New()

    'End Sub 'New

    Public Shared Property PaymentMethods() As PaymentMethods
        Get
            Return CType(HttpContext.Current.Application.Item("PaymentMethods"), PaymentMethods)
        End Get
        Set(ByVal value As PaymentMethods)
            HttpContext.Current.Application.Item("PaymentMethods") = value
        End Set
    End Property
    'Etc, Etc...

End Class

【问题讨论】:

【参考方案1】:

我怀疑您输入的代码在您的 Web 应用程序的 App_Code 文件夹中。此代码可从您的 Web 代码中访问,因为您已经演示过,但无法从任何其他程序集访问。

您可以通过右键单击特定错误并选择“在源中抑制消息”来抑制错误实例。这将导致代码被添加到你的源代码中,上面写着“下次你检查这个错误 fuggedabodi 时!”

When to Suppress Warnings
--------------------------------------------------------------------------------

While it is never necessary to suppress a warning from this rule, it is safe to do this when the assembly will never be used with other assemblies. 

要抑制所有出现的错误,请选择“在项目抑制文件中抑制”

【讨论】:

以上是关于代码分析错误:在命名空间中声明类型的主要内容,如果未能解决你的问题,请参考以下文章

类型命名空间未声明或不是简单类型

关于命名空间namespace

命名空间

命名空间

包含命名空间的类模板的转发声明会导致编译错误

命名空间