Доступ к свойствам в объекте ActiveX через Silverlight / JavaScript - PullRequest
1 голос
/ 15 июня 2010

Я написал объект ATL / ActiveX, который предоставляет различные свойства и методы через интерфейс COM. Я хотел бы иметь доступ к этим методам и свойствам из приложения Silverlight. Проблема, с которой я сталкиваюсь, заключается в том, что я могу получить доступ к методам из Silverlight / C #, но я не нашел правильный синтаксис для доступа к его свойствам.

Другими словами, мой код Silverlight C # выглядит примерно так:

var ax = HtmlPage.Document.CreateElement("object");
ax.Id = "myControl";
ax.SetAttribute("style", "width: 1px; height: 1px;");
ax.SetAttribute("classid", "CLSID:42832F4C-3480-4450-A6B5-156B2EFC408F");
HtmlPage.Document.Body.AppendChild(ax);

// This works
ax.Invoke("SomeMethod", "param1", "param2");

// Each of these throw a "Failed to invoke" InvalidOperationException
ax.Invoke("SomeProperty");
ax.Invoke("SomeProperty", "propertyValue");
ax.Invoke("get_SomeProperty");
ax.Invoke("put_SomeProperty", "propertyValue");

Конечно, я мог бы написать чистую оболочку JavaScript вокруг объекта AX и вызывать функции JavaScript из Silverlight, и я все еще могу это сделать. Но я бы предпочел не писать и не поддерживать этот отдельный слой, если мне не нужно.

Есть предложения?

1 Ответ

1 голос
/ 17 июня 2010

ОК, решение было очевидным, я просто не выглядел достаточно жестким.Правильный синтаксис:

ax.GetProperty("SomeProperty");
ax.SetProperty("SomeProperty", "propertyValue");

Дух.

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