Дублированное пространство имен создается на dll - PullRequest
0 голосов
/ 26 февраля 2020

Я создаю библиотеку классов в VS2019 (VB. NET).

В свойствах проекта я использовал это root пространство имен: Customer.App.Classlibrary

Когда я компилирую и использую эту библиотеку в другом проекте, мне нужно импортировать ее как

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

. Копируется пространство имен root ....

Любые предложения ???

1 Ответ

0 голосов
/ 27 февраля 2020

В отличие от c#, в vb. net вам не нужно пространство имен вокруг вашего класса, скорее весь код vb. net начинается в пространстве имен root без его указания. Поэтому, когда вы написали свою функцию для использования следующим образом

Namespace Customer.App.Classlibrary

    Public Module MyStaticCLass
        Public Sub Foo()

        End Sub
    End Module

End Namespace

, пространство имен Customer.App.Classlibrary добавляется к пространству имен root.

enter image description here

и ваше пространство имен становится 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

. Возможно, было бы лучше задать пространство имен root для Customer, и вы можете поставить класс в Namespace App.Classlibrary, который будет иметь аналогичный эффект с дополнительным преимуществом возможности разделения классов в одной сборке на более детализированные пространства имен. Это зависит от вашего желаемого дизайна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...