Я создаю форму Windows, где я подключаюсь к HP Quality Center OTA. Я могу войти в систему, но после выхода из системы, когда я нажимаю кнопку «Вход», предыдущий экземпляр объекта не получает повторной инициализации. Есть ли способ повторного использования одного и того же объекта или есть другой подход, который я должен принять? Вот код:C# Windows Form - как повторно использовать объект с другой кнопки Нажмите событие
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TDAPIOLELib;
namespace TestLab
{
public partial class Form1 : Form
{
static TDConnection tdc = new TDConnection();
static String qcUrl = "https://serveraddress/qcbin";
static string uid;
public Form1()
{
InitializeComponent();
}
private void login_button1_Click(object sender, EventArgs e)
{
uid = Microsoft.VisualBasic.Interaction.InputBox("Enter your User ID", "User ID", " ", 0, 0);
string pwd1 = Microsoft.VisualBasic.Interaction.InputBox("Enter your password", "Password", " ", 0, 0);
// TDConnection tdc = new TDConnection();
tdc.InitConnectionEx(qcUrl);
tdc.Login(uid, pwd1);
label1.Text = " ";
label1.Text = uid + " logged into HPQC.";
}
private void label1_Click(object sender, EventArgs e)
{
}
private void logout_button1_Click(object sender, EventArgs e)
{
tdc.Logout();
tdc.Disconnect();
tdc = null;
label1.Text = " ";
label1.Text = uid + " logged out of HPQC.";
}
}
}
Если вы установите для переменной tdc значение null, вам нужно снова вызвать новое TDConnection. Я не понимаю, почему вы прокомментировали эту строку в коде входа – Steve
Привет, Стив, спасибо за отзыв. Да, на одной итерации я использовал прокомментированный код внутри функции login_button1_Click, но затем, когда я нажал кнопку выхода из системы, он не распознал объект tdc, поскольку он был вне области видимости. Поэтому я сделал tdc как статический объект вне этих двух функций. Теперь я могу войти в систему и выйти из системы в первый раз, но после выхода из системы, когда я снова нажму кнопку входа в систему и введите идентификатор и пароль, я получаю сообщение об ошибке: «System.NullReferenceException: ссылка на объект не установлена в экземпляр объекта». – mkarim
Не нужно ставить tdc, но вам нужно объявить его на глобальном уровне, чтобы использовать его в двух разных методах. – Steve