Возврат объекта из C # в Silverlight через COM - PullRequest
1 голос
/ 07 апреля 2011

Я создал класс C # COM Visible, к которому я могу получить доступ через

dynamic com = AutomationFactory.CreateObject("MyCom");

функция в Silverlight, и я могу вернуть основные типы данных (например, string, int ..). Пока все хорошо:).

Но теперь я хотел бы вернуть объект через COM-соединение, и это оказалось довольно сложно. Я могу вернуть объект и поместить его в динамическую переменную и оттуда получить доступ к членам объекта, но не могу привести данные к желаемому типу объекта.

Вопросы: 1. Есть ли способ привести динамическую переменную к желаемому классу? 2. Есть ли способ заставить COM-объект возвращать объект моего желаемого класса?

1 Ответ

0 голосов
/ 07 апреля 2011

Ответ на оба ваших вопроса: Нет.

Нет взаимодействия между полной версией .NET, установленной на клиенте, и версией .NET Silverlight.

Лучшее, что вы можете сделать, - это создать класс-оболочку, который принимает dynamic и делегирует его членов в dynamic.

Если вы хотите повторно использовать код, который использует этот .NETОбъекты в обоих .NET и Silverlight затем определяют объект с помощью интерфейса.Пусть исходный класс реализует интерфейс, а класс-оболочка также реализует интерфейс.

...