Использование интерфейсов VB, перечислений и т. Д. В коде C # - PullRequest
1 голос
/ 21 октября 2011

У меня есть решение с несколькими проектами, некоторые проекты написаны на VB, некоторые на C #. Мне интересно, есть ли способ использовать интерфейсы и / или перечисления, написанные на VB в классах C #? Мой код C # ниже не компилируется, однако я могу видеть интерфейс в intellisense.

Код VB:

Namespace A
    Public Inteface IHandler
        Function Handle() As HandlerResult
    End Interface

    Public Enum HandlerResult
        Success = 1
        Fail = 0
    End Enum
End Namespace

C # код:

using A;
namespace B
{
    public class MyHandler : IHandler
    {
        public HandlerResult Handle(){
            return HandlerResult.Success;
        }
    }
}

P.S Это консольное / сервисное приложение, а не ASP.Net (где я знаю, что это выполнимо).

UPD : Извините, ребята, отсутствует ссылка на проект с интерфейсом. Это сейчас исправлено. Я думаю, что смущало меня то, что в VB проектах ссылки делаются немного иначе, чем в C #.

Ответы [ 2 ]

3 голосов
/ 21 октября 2011

Это будет работать, если вы поместите код C # в сборку, отличную от кода VB. Чтобы избежать циклических зависимостей, вам, возможно, придется переместить весь существующий код VB в сборку DLL. Таким образом, вы можете ссылаться на сборку VB.Net из вашей новой сборки C # и ссылаться на обе сборки из основной сборки exe.

Обратите внимание, что если вы сделаете это, пространство имен при просмотре из C # не будет просто "A", оно будет вложено в пространство имен по умолчанию VBProject, например,

using StackOverflow7843509.A;

namespace B
{
    public class MyHandler : IHandler
    {
        public HandlerResult Handle()
        {
            return HandlerResult.Success;
        }
    }
}

В этом примере пространство имен по умолчанию созданного мной проекта VB было StackOverflow7843509

0 голосов
/ 21 октября 2011

Все сводится к тому же, когда код компилируется, поэтому ответ (в основном) да - вы можете использовать скомпилированные библиотеки VB.NET с C # и наоборот.

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