2010-06-15 3 views
1

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

Другими словами, мой 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

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

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

Duh.

Смежные вопросы