1
我寫過一個ATL/ActiveX對象,它通過COM接口公開各種屬性和方法。我希望能夠從Silverlight應用程序訪問這些方法和屬性。我遇到的問題是我可以從Silverlight/C#中訪問這些方法,但是我沒有找到訪問其屬性的正確語法。通過Silverlight/JavaScript訪問ActiveX對象中的屬性
換句話說,我的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");
我當然可以,寫身邊的AX對象純JavaScript包裝,並從Silverlight中調用JavaScript函數,和我可能還是這樣做的。但是,如果我不需要,我寧願避免編寫和維護單獨的圖層。
有什麼建議嗎?