当使用WebBrowser
控件时,我想将JavaScript代码中的对象传递给C#。.Net WebBrowser和WinForms应用程序中的HTML之间的双向通信
解决方案是已知的 - 使用ObjectForScripting
WebBrowser
的属性并调用javascript代码中的方法使用window.external
。
我知道该怎么做,但我想在javascript中创建具有给定类型的对象,并将它传递给C#而不使用object
或dynamic
。例如:
我想从JS这种方法在C#中称:
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
对象?