【问题标题】:Accessing properties in an ActiveX object through Silverlight/JavaScript通过 Silverlight/JavaScript 访问 ActiveX 对象中的属性
【发布时间】:2010-06-17 16:07:51
【问题描述】:

我编写了一个 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");

当然,我可以围绕 AX 对象编写一个纯 JavaScript 包装器,并从 Silverlight 调用 JavaScript 函数,而且我可能还会这样做。但如果没有必要,我宁愿避免编写和维护那个单独的层。

有什么建议吗?

【问题讨论】:

    标签: javascript silverlight activex


    【解决方案1】:

    好的,解决方案很明显,我只是看的不够仔细。正确的语法是:

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

    呃。

    【讨论】:

      猜你喜欢
      • 2017-11-17
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2013-10-29
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多