Как добавить VB классы в библиотеку классов? - PullRequest
0 голосов
/ 18 мая 2018

Я создал новый проект библиотеки классов VS 2005 и добавил в него несколько классов VB.NET.Однако, когда я компилирую проект и импортирую dll в другие мои проекты, я не вижу свои классы.

Что я делаю не так, что я должен сделать, чтобы потом добавить в компиляцию?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Существует множество причин, по которым это может произойти, поэтому без дополнительной информации невозможно точно сказать, почему, но наиболее вероятные причины, которые приходят на ум:

  • Классы в классебиблиотека не может быть объявлена ​​как Public.Если они объявлены как Friend (или как Private, если они являются вложенными типами), они не будут видны другим проектам, которые используют эту библиотеку.Классы должны быть объявлены следующим образом: Public Class MyClass
  • Код потребления не определяет пространство имен.Если пространство имен, в котором классы объявлены в библиотеке классов, не совпадает с кодом, который пытается его вызвать, потребляющий код должен либо импортировать пространство имен библиотеки классов, либо ему необходимо полностью квалифицировать имена классов при их использовании.,Чтобы импортировать пространство имен, в верхней части файла кода, который использует класс, добавьте строку, подобную этой: Imports MyClassLibraryNamespace (но с вашим фактическим пространством имен).Чтобы полностью определить имя класса в строке, вы можете сделать это следующим образом: Dim myVariable As New MyClassLibraryNamespace.MyClass
0 голосов
/ 18 мая 2018

Использовали ли вы явный модификатор доступа (Public или Friend) для ваших классов в вашей библиотеке классов?Если нет, по умолчанию будет Friend.Это означает, что ваши классы видны только в этой сборке (библиотеке классов).

Так что вы можете захотеть сделать определенные определенные классы в своей библиотеке классов общедоступными:

Public Class MyClass
    ...
End Class

Редактировать: как СтивенДоггарт отметил, что классы VB.NET являются публичными по умолчанию.Так что это может не быть проблемой, если вы явно не использовали другой модификатор доступа.

...