Можно ли импортировать классы c # из dll в dll vb.net? - PullRequest
4 голосов
/ 16 февраля 2012
  • IDE: VS2010
  • Framework.net: 4.0

Я создал проект ac # dll под Visual Studio 2010 с несколькими открытыми классами, и я хотел быиспользовать его классы внутри другого проекта dll, но написанного на vb.net.

В проекте dll vb.net я ссылался на встроенный c # dll, но невозможно импортировать классы c #.Пространство имён c # dll даже не распознается.

Что я должен сделать, чтобы увидеть мои c # классы?Если это возможно.

Пример класса моего c # dll (пространство имен MyCSharpDll):

namespace MyCSharpNamespace {
  public class MyCSharpClass {
    public void Test() {}
  }
}

Пример в файле моего db vb.net:

Imports MyCSharpDll.MyCSharpNamespace

VS2010 указывает на ошибку, говорящую о том, что MyCSharpDll неизвестен или общедоступный член.

Спасибо.

Ответы [ 4 ]

4 голосов
/ 16 февраля 2012

Я думаю, вы должны переписать свой импорт

Импортирует MyCSharpNamespace

без части 'MyCSharpDll'

4 голосов
/ 16 февраля 2012

Предполагая, что dll CLS-совместима и скомпилирована для одной и той же версии времени выполнения, вы сможете использовать ее без проблем.

Если один из этих (или оба) из нихусловия не выполняются, вы не сможете использовать импортированную DLL.

Убедитесь, что директива Import использует пространство имен, определенное в метаданных сборки - посмотрите в свойствах проекта C # и посмотрите, что по умолчаниюпространство имен, это то, что вам нужно импортировать.

4 голосов
/ 16 февраля 2012

Вы спросили: «Я создал проект c # dll в Visual Studio 2010 с несколькими открытыми классами, и я хотел бы использовать его классы внутри другого проекта dll, но написанного на vb.net».

ДА, вы можете это сделать.

Просто добавьте к этой ссылке на DLL и все!

1 голос
/ 16 февраля 2012

Вам нужно добавить ссылку на вашу C # dll.

http://msdn.microsoft.com/en-us/library/wkze6zky%28v=vs.80%29.aspx

Теперь вы можете создать экземпляр класса C # из VB.NET:

.
Dim cClass = New MyCSharpNamespace.MyCSharpClass()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...