" System.Dynamic - 无效的参数"在第二个和后续的Document.ExecCommand

时间:2017-03-02 16:51:18

标签: c# wpf webbrowser-control execcommand

使用WebBrowser控件创建WPF应用程序。它使用Document.ExecCommand()将显示页面的HTML复制到剪贴板,然后将其存储在变量中:

XAML

<WebBrowser x:Name="browser"... />

代码隐藏

browser.Source = new Uri(selectedUrl);

dynamic document = browser.Document;
document.ExecCommand("SelectAll", true, null);
document.ExecCommand("Copy", true, null);
document.ExecCommand("Unselect", true, null);

IDataObject iDataObj = Clipboard.GetDataObject();
var content = iDataObj.GetData(DataFormats.Html).ToString();

第一次这一切都很好。但是在导航到同一会话中的第二个URL之后,在Document.ExecCommand(&#34; SelectAll&#34;,true,null)上,它会抛出异常

{"Invalid argument."}
    Data: {System.Collections.ListDictionaryInternal}
    HResult: -2146827850 (0x800A01B6)
    HelpLink: null
    InnerException: null
    Message: "Invalid argument."
    Source: "System.Dynamic"
    StackTrace:
        at System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
        at CallSite.Target(Closure , CallSite , ComObject , String , Boolean , Object )
        at CallSite.Target(Closure , CallSite , Object , String , Boolean , Object )
        ...
    TargetSite: {Void CheckThrowException(Int32, System.Dynamic.ExcepInfo ByRef, UInt32, System.String)}

但是,这并不是一直发生的。有一次我可以测试,它可以在我之后提出的第一页和每一页上工作。下次测试时,它会抛出异常。

0 个答案:

没有答案