2010-09-22 5 views
9

Der folgenden VB6-Code einer Verbindung mit Software von Drittanbietern und erzwingt einen Login mit den Admin-Benutzername und Passwort:C# -Äquivalent von VB6 der GetObject

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

Ich wünsche die gleiche Aufgabe in C# zu tun, aber als sehr Grüner C# -Entwickler (ca. 3 Monate Erfahrung) Ich habe keine Ahnung, wie das geht. Ich habe einen sehr frustrierenden Tag bei Google verbracht, aber nichts gefunden, was dazu passt (das meiste konnte ich nicht einmal verstehen). Ich weiß noch weniger über VB6 als über C#, aber VB6 lässt es so einfach aussehen.

Auch ich kann die Verbindung zu dieser Software von Drittanbietern nicht testen, bis ich in unserer QA-Umgebung implementieren. Also möchte ich die Funktionalität mit einer einfachen App, zum Beispiel Notepad, testen. Welche Funktion/Methode könnte ich anstelle von "FixLogin" im Editor aufrufen?

Ich wäre sehr dankbar, wenn mir jemand mit diesem Problem helfen könnte.

Mit freundlichen Grüßen, Steve.

Antwort

0

GetObject gibt eine COM-Steuerung zurück. Sie müssten mit COM Interop arbeiten, um dies in C# zu tun. (Dies ist nicht trivial.)

16

Auch wenn Sie mit C# arbeiten, können Sie alle von Vb.Net bereitgestellten Klassen und Methoden verwenden, einschließlich GetObject.

Fügen Sie einfach einen Verweis auf die .NET-Komponente "Microsoft.VisualBasic" hinzu.

Sobald Sie die Referenz hinzugefügt haben, sind Sie in der Lage Microsoft.VisualBasic.Interaction.CreateObject() oder Microsoft.VisualBasic.Interaction.GetObject()

+0

+1, Art und Weise zu rufen zu tun es. CreateObject() erledigt einen ziemlich nicht-trivialen Job. –

9
+0

Der Wunsch mit GetObject besteht darin, ein instanziiertes Objekt im Speicher abzurufen, wenn es existiert. was diese Lösung tut. Wenn es null zurückgibt, können Sie new verwenden, um es zu instanziieren. Dies ist die beste Lösung für die Frage, da es alle Aspekte des Verhaltens behandelt. –