Ошибка при использовании interop.Shdocvw
Я пытался подключиться к элементу управления веб-браузером, но постоянно возникало исключение, что iwebbrowser2 должен реализовывать iwebbrowser2 как-то так, затем я гуглил и нашел решение этой проблемы, затем выбрал com-объекты, затем оттуда веб-браузер Microsoft после выбора, что я получил элемент управления для применения в форме и я сделал.
следующий написанный код
var t = new Thread(() =>
{
Form1 frm1 = new Form1();
//new FormDialogWatcher(frm1.Handle);
Settings.AutoStartDialogWatcher = false;
var ie = new IE( frm1.WebBrowser1);
ie.GoTo("http://www.google.com");
});
t.SetApartmentState(ApartmentState.STA);
t.Start();
Как и другие потоки при переполнении стека, предлагаем ссылаться на introp.SHdocve, но при сборке 68 произошли ошибки:
Ошибка 64
Невозможно внедрить тип взаимодействия "SHDocVw.tagREADYSTATE", обнаруженный в обеих сборках "e:\XMLreader\lib\Interop.SHDocVw.dll" и "e:\XMLreader\XMLreader\obj\x86\Debug\Interop.SHDocVw.dll". onsider, установив для свойства 'Embed Interop Types' значение false.
Я щелкнул правой кнопкой мыши на этом dll и изменил interop interop на false, но безрезультатно.
Я закомментировал var ie = new IE( frm1.WebBrowser1);
и все 68 ошибок исчезли.
1 ответ
Зачем вам вообще нужна форма? Попробуй это:
var ie = new IE();
ApartmentState может быть установлен для всего приложения в конфигурации.
<configuration>
<configSections>
<sectionGroup name="NUnit">
<section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</configSections>
<NUnit>
<TestRunner>
<!-- Valid values are STA,MTA. Others ignored. -->
<add key="ApartmentState" value="STA" />
</TestRunner>
</NUnit>
</configuration>