2010-09-22 2 views
9

Следующий коде VB6 подключается к некоторому стороннему программному обеспечению и заставляет логин с именем пользователя и паролем администратора:C# эквивалент GetObject VB6 в

Set obj = GetObject(, "workspace.application") 
obj.System.FixLogin strAdminUsername, strAdminPassword 

Я хотел сделать ту же самую задачу в C#, но как очень зеленый разработчик C# (около 3 месяцев опыта) Я понятия не имею, как это сделать. Я потратил очень неприятный день на Google, но не нашел ничего, что соответствовало бы счету (большинство из того, что я даже не мог понять), я знаю даже меньше о VB6, чем о C#, но VB6 заставляет его выглядеть так просто.

Также я не могу протестировать подключение к этому программному обеспечению третьей стороны, пока не реализую нашу среду QA. Поэтому я хотел бы протестировать функциональность с помощью простого приложения «Блокнот», например. Какую функцию/метод я могу вызвать в Notepad вместо «FixLogin»?

Буду признателен, если кто-то может помочь мне с этой проблемой.

С уважением, Steve.

ответ

0

GetObject возвращает COM-контроль. Вам нужно будет работать с COM Interop, чтобы сделать это на C#. (Это не является тривиальным.)

16

Даже если вы работаете с C#, вы можете использовать все классы и методы, предоставляемые Vb.Net, включая GetObject.

Просто добавьте ссылку на компонент .NET «Microsoft.VisualBasic».

После того, как вы добавили ссылку, вы можете позвонить Microsoft.VisualBasic.Interaction.CreateObject() или Microsoft.VisualBasic.Interaction.GetObject()

+0

+1, способ сделать Это. CreateObject() делает довольно нетривиальное задание. –

9
+0

Желание с GetObject состоит в том, чтобы получить экземпляр объекта в памяти, если он существует; которое это решение делает. Если он возвращает значение null, вы можете использовать new для создания экземпляра. Это лучшее решение вопроса, потому что оно обрабатывает все аспекты поведения. –

Смежные вопросы