当使用 WebBrowser
控件时,我想将对象从 javascript 代码传递到 C#。
已知解决方案 - 使用 WebBrowser
的 ObjectForScripting
属性并使用 window.external
从 javascript 代码调用方法。
我知道该怎么做,但我想在 javascript 中创建具有给定类型的对象并将其传递给 C#,而不使用 object
或 dynamic
。示例:
我想在 C# 中从 JS 调用这个方法:
public void Test(Foo foo)
{
//do something
}
Foo
是:
[ComVisible(true)]
public class Foo
{
public string Bar;
}
我知道如何调用这些方法:
public void Test2(object foo)
{
//do something
}
public void Test3(dynamic foo)
{
//do something
}
但我想使用第一个 - Test(Foo foo)
我应该怎么做才能将类 Foo
的对象从 JS 传递到 C# 或如何将 JS 对象动态转换为 C# Foo
对象?
最佳答案
jscript 中的类型系统较弱,所以不能有早期绑定(bind)类。我建议你make your class automatable and register your project's type library for late binding因此可以通过新的 ActiveXObject 在 jscript 中调用它。
关于c# - .Net WebBrowser 中的 HTML 与 WinForms 应用程序之间的双向通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3236513/