将System._COM对象(类型 - JScriptTypeInfo)从Web页面导入C# - 无法反序列化

时间:2017-09-11 13:49:57

标签: javascript c#

我有一个网页,当按钮点击返回javascript对象时。

<input type="button" value="JSON Object" onclick="JSONObjectTest(user1)" var user1 = { "name" : "myname", "title": "mytitle", "salary" : null};

在C#应用程序中,我正在使用Web浏览器加载此网页,其中包含上述代码。并在C#中实现了以下代码

   this.webBrowser.ObjectForScripting = new JavascriptEventHandler();

DocumentCompleted中的此代码

    var scriptBlock = webBrowser.Document.CreateElement("script");

        var sb = new StringBuilder();


        sb.Append("window.JSONObjectTest=function(param){window.external.JSONObjectEvent(param);}");


        scriptBlock.SetAttribute("type", "text/javascript");
        scriptBlock.SetAttribute("text", sb.ToString());
        webBrowser.Document.Body.AppendChild(scriptBlock);

这是JavascriptEventHandler(ObjectForScripting)类

的代码
  [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [ComVisible(true)]
    public class JavascriptEventHandler
    {

        public void JSONObjectEvent(object param)
        {             

         }
     }

我能够完美地加载网页。当在网页上单击一个按钮时,我能够在C#中使用此方法 - JSONObjectEvent。

我的问题是,我想将javascript对象反序列化为c#类。我得到对象类型为System._COMObject。

如何反序列化?请帮忙。

使用Newtosnsoft.Json去除deserailize。

注意:我将只获取javascript对象而不是字符串。如果我从网页传递JSON.Stringify(user1),我可以反序列化它。但如果它是javascript对象我无法反序列化。

0 个答案:

没有答案