【问题标题】:Duplicated Namespace is created on dll在 dll 上创建了重复的命名空间
【发布时间】:2020-06-10 19:35:55
【问题描述】:

我正在 VS2019 (VB.NET) 中创建一个类库。

在项目属性中,我使用了这个根命名空间:Customer.App.Classlibrary

当我在另一个项目中编译和使用这个库时,我需要将它导入为

Import Customer.App.Classlibrary.Customer.App.Classlibrary

根命名空间重复......

有什么建议吗???

【问题讨论】:

  • 建议:向您展示代码(足以重现问题)在问题中

标签: vb.net namespaces visual-studio-2019 class-library


【解决方案1】:

与 c# 不同,在 vb.net 中,您不需要在类周围使用命名空间,而是所有 vb.net 代码都从根命名空间开始而不指定一个。因此,当您编写要像这样使用的函数时

Namespace Customer.App.Classlibrary

    Public Module MyStaticCLass
        Public Sub Foo()

        End Sub
    End Module

End Namespace

命名空间Customer.App.Classlibrary被添加到根命名空间。

你的命名空间变成了 RootNamespace.ClassNamespace = Customer.App.Classlibrary.Customer.App.Classlibrary

你需要这样做

Imports Customer.App.Classlibrary.Customer.App.Classlibrary

修复方法:只需从类定义中删除命名空间

'Namespace Customer.App.Classlibrary

Public Module MyStaticCLass
    Public Sub Foo()

    End Sub
End Module

'End Namespace

而导入只是

Imports Customer.App.Classlibrary

将根命名空间指定为Customer 可能是一个更好的主意,您可以将您的类放在Namespace App.Classlibrary 中,这将产生类似的效果,另外还有一个好处是能够将同一程序集中的类分开到更细化的命名空间。这取决于您想要的设计。

【讨论】:

  • 正如你在普通课程中所说的那样。我刚刚注意到,问题是由 EDMX 模型引起的,它添加了额外的命名空间。
猜你喜欢
  • 1970-01-01
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多