Как можно сделать пользовательские классы доступными для просмотра в сборке, которая ссылается на них в веб-ссылке?

#vb.net #vba #web-services #wcf #com

#vb.net #vba #веб-сервисы #wcf #com

Вопрос:

Моя конечная цель — вызвать веб-службу из VBA в Microsoft Access 2010. Я решил, что лучший способ добиться этого — написать сборку COM Visible для использования веб-службы и действовать как мост между Microsoft Access (VBA 7) и веб-службой.

Я пробовал с обоими ASP.Net Веб-приложение / служба и приложение-служба WCF с использованием Visual Studio 2010.

Это решение отлично работает для простых типов данных, таких как строки, целые числа и т.д., Но пользовательские классы просто не видны из приложения, ссылающегося на COM visible assembly.

Как их можно сделать видимыми для COM?

Прошу прощения, если все это не имеет никакого смысла — мой мозг сгорел!

Комментарии:

1. Опубликуйте код, который у вас есть до сих пор.

2. Оформлены ли классы <ComVisible(True)> ?

3. @dee, я постараюсь опубликовать некоторый код завтра.

4. @Comintern, классы, определенные в моей сборке, украшены <ComVisible(True), Guid(«некоторый идентификатор guid»), ClassInterface(ClassInterfaceType.AutoDual)> . Проблема не в этих классах — проблема в том, что я пытаюсь передать классы, определенные в веб-службе, в качестве параметров. Я задавался вопросом, могу ли я просто добавить <ComVisible(True)> к классам в веб-приложении WCF… но я сомневаюсь, что эти украшения будут переданы из веб-приложения в ссылку на службу, созданную WSDL …? Я полагаю, я мог бы вручную добавить эти украшения в сгенерированный код?

5. Следуете ли вы рекомендациям, описанным в Пошаговом руководстве: создание COM-объектов с помощью Visual Basic ?