C #: ObjectDisposedException не было обработано кодом пользователя - PullRequest
1 голос
/ 28 октября 2011

У меня есть секретный проект, над которым я работаю, и в основном он переходит на страницу с помощью веб-браузера, заполняет форму и нажимает кнопку Отправить.

Вчера все работало нормально, но сегодня мой интерфейс постоянно отстает каждый раз, когда запускается код для заполнения данных в формах на сайте.

В C # IDE это ошибка, которую я получаю:

C #: исключение ObjectDisposedException не было обработано кодом пользователя

... и когда я просматриваю детали, я получаю:

Имя '$ exception' не существует в текущем контексте

Кто-нибудь имеет представление о том, что я должен делать? Должен ли я что-то распоряжаться или ...?

1 Ответ

1 голос
/ 28 октября 2011

Предполагая, что

webBrowser1

относится к типу

System.Windows.Forms.WebBrowser

тогда ошибка просто означает, что вы уже удалили объект webBrowser1 до вызова остальной части вашего кода. Поэтому исправление состоит в том, чтобы просто убедиться, что вы избавляетесь от объекта в соответствующее время.

Объявление вашего объекта webBrowser1 внутри используемого блока сделает область видимости более явной, например,

using(System.Windows.Forms.WebBrowser webBrowser1 = new System.Windows.Forms.WebBrowser())
{

    //put calls to your functionality here e.g.
    webBrowser1.Document.GetElementById("oauth_signup_client_fullname")
       .SetAttribute("‌​value", txtBoxImportNames1.Text + txtBoxImportNames2.Text);

    //or pass it to another function, and it will still get disposed correctly, e.g.
    myOtherFunctionality(webBrowser1);

}

поможет вам правильно распоряжаться объектом WebBrowser (поскольку он требует значительных ресурсов) и использовать его только тогда, когда он активен (поскольку он доступен только в блоке using).

Блок использования также помогает обеспечить надлежащую утилизацию даже в случае возникновения исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...