使用window.external将javascript Date对象传递给C#WebBrowser控件

|| 我可以从
WebBrowser
WinForms控件中使用javascript
window.external
调用
WebBrowser.ObjectForScripting
的C#方法,并传递
string
int
bool
等。但是我不知道如何传递javascript
Date
对象以及如何将其转换/编组为.NET
DateTime
类。 显然,我可以通过
string
并对其进行解析,但这并不是重点。我只是很好奇如何用javascript
Date
和.NET
DateTime
来做呢?     
已邀请:
您可以利用以下事实:Java语言中的日期表示为自UNIX纪元(1970-01-01 00:00:00 UTC)以来经过的毫秒数。使用valueOf()方法从
Date
对象获取该值:
var millisecondsSinceEpoch = yourDate.valueOf();
如果您可以将该值作为ѭ13封送给C#,则可以使用其构造函数和AddMilliseconds()方法创建适当的
DateTime
对象:
DateTime yourDateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
    .AddMilliseconds(millisecondsSinceEpoch);
    
我为我的项目找到了更好的解决方案。 在javascript中:
var date = new Date();
myComObject.DoSomething(date.getVarDate());
在C#中
[ComVisible(true)]
public class Foo
{
    public void Bar(DateTime dateTime)
    {
        Console.WriteLine(dateTime);
    }
}
    
我终于让它工作了。我不知道为什么,但是我不能用
dynamic
使用它。解决方法如下:
[ComVisible(true)]
public class Foo
{
    public void Bar(object o)
    {
        var dateTime = (DateTime)o.GetType().InvokeMember(\"getVarDate\", BindingFlags.InvokeMethod, null, o, null);
        Console.WriteLine(dateTime);
    }
}
    

要回复问题请先登录注册