Ich habe einen VB-basierten Codeblock, den ich in C# umschreiben muss und ich schreibe eine Funktion, die eine Instanz eines COM-Objekts erstellt und eine neue Terminalsitzung erstellt, goes aus, liest einen Bildschirm und gibt den Inhalt des Bildschirms zurück. Im Moment habe ich das Gefühl, dass ich in C# nicht den richtigen Ansatz finde und würde mich über Feedback freuen.Korrekte Einstellung einer Instanz eines COM-Objekts in C#
VB Code
set bzlipi = CreateObject("BlueZone.LIPI")
bzlipi.Username = "myuserid"
bzlipi.Password = "mypassword"
bzlipi.HostAddress = "101.122.0.138"
bzlipi.ShowTransferStatusWindow = False
bzlipi.LocalPromptBeforeOverwrite = False
result = bzlipi.ReceiveFile("local.txt", "MYLIB/F4101")
MsgBox bzlipi.ErrorMessage
C#
using BZLIPILib;
using BZWHLLLib;
public void Connector() {
object Host = Activator.CreateInstance(Type.GetType("BZLIPILib.LIPI"));
//Set Host properties
}
Wie es aussieht, wird diese Erkennung nicht tut oben keine Eigenschaften innerhalb Host als seine
VB Gegenstück. Ich habe alle verfügbaren COM-Objekt
Referenzen im Paket-Manager meines VS-Projekts gemacht. Was soll ich sein?
anders machen?
Gibt es einen Grund, die Bibliothek nicht direkt zu referenzieren? –
Kein echter Grund außer dem, was der Verkäufer empfohlen hat. – LifeOf0sAnd1s
Der C# -Code referenziert tatsächlich die Bibliothek direkt, deshalb funktionieren die 'using'-Anweisungen. Es nicht zu benutzen, ist na ja, unklug. Aber erfordert 'dynamic Host' und' Type.GetTypeFromProgID ("BlueZone.LIPI") '. IntelliSense zeigt weiterhin keine Mitglieder an. –