Freigeben über


Ein Client in Visual C#

Der Client sieht in Visual C# folgendermaßen aus:

Auflistung 1. Client in Visual C# (ClientCS.cs)

using System;

using CompVC;
using CompCS;
using CompVB;

// This class exists to house the application's entry point.
class MainApp {
  // The static method, Main, is the application's entry point.
  public static void Main() {

    // Iterate through the component's strings,
    // and write them to the console.
    CompCS.StringComponent myCSStringComp = new 
        CompCS.StringComponent();
    Console.WriteLine("Strings from C# StringComponent");
    for (int index = 0; index < myCSStringComp.Count; 
        index++) {
      Console.WriteLine(myCSStringComp.GetString(index));
    }

    // Iterate through the component's strings,
    // and write them to the console.
    CompVC.StringComponent myVCStringComp = new 
        CompVC.StringComponent();
    Console.WriteLine("\nStrings from Visual C++ 
       StringComponent");
      for (int index = 0; index < myVCStringComp.Count; 
         index++) {
       Console.WriteLine(myVCStringComp.GetString(index));
      }

    // Iterate through the component's strings,
    // and write them to the console.
    CompVB.StringComponent myVBStringComp = new 
        CompVB.StringComponent();
    Console.WriteLine("\nStrings from Visual Basic 
        StringComponent");
    for (int index = 0; index < myVBStringComp.Count; 
        index++) {
      Console.WriteLine(myVBStringComp.GetString(index));
    }
  }
}

Im Gegensatz zum Managed Extensions for C++-Beispiel müssen hier keine Bibliotheken importiert werden. Stattdessen können Sie sie während des Kompilierungsprozesses angeben. Der Vorteil des Angebens einer Bibliothek über die using-Anweisung besteht darin, dass using den Namespace in das Programm einschließt, so dass Sie auf Typen in der Bibliothek verweisen können, ohne die Typnamen voll zu kennzeichnen. Da alle Beispielkomponenten denselben Typnamen (StringComponent) haben, müssen Sie den voll gekennzeichneten Namen verwenden, um eventuelle Mehrdeutigkeiten zu beseitigen, wenn Sie auf die Methode (GetString) und die Eigenschaft (Count) verweisen, die in allen Komponenten vorkommen.

Visual C# enthält zur Behebung dieses Problems außerdem einen Mechanismus, der als Aliasing bezeichnet wird. Wenn Sie die using-Anweisungen in die folgenden Anweisungen geändert haben, müssen Sie die Namen nicht voll kennzeichnen:

using VCStringComp = CompVC.StringComponent;
using CSStringComp = CompCS.StringComponent;
using VBStringComp = CompVB.StringComponent;

Der Clientcode ist – abgesehen von den Gültigkeitsbereichsauflösungsoperatoren – mit dem Managed Extensions for C++-Beispiel identisch. Der Code, der die drei Zeichenfolgenkomponenten aufruft, ist – abgesehen von der Angabe der zu verwendenden Bibliothek – ebenfalls identisch. Wie beim Managed Extensions for C++-Beispiel, deklariert die erste Anweisung in jedem der drei Abschnitte eine neue lokale Variable des Typs StringComponent, initialisiert die Variable und ruft deren Konstruktor auf:

CompCS.StringComponent myCSStringComp = new 
   CompCS.StringComponent();

Nachdem eine Zeichenfolge in die Konsole geschrieben wird, um anzugeben, dass dieser Teil des Programms aufgerufen wurde, verwendet der Client den Wert der Count-Eigenschaft, um die Member der entsprechenden Zeichenfolgenkomponente zu durchlaufen:

for (int index = 0; index < myVCStringComp.Count; 
    index++) {
   Console.WriteLine(myVCStringComp.GetString(index));
}

Weitere Anforderungen gibt es nicht. Für die beiden anderen Sprachkomponenten wird alles wiederholt.

Das Erstellen des neuen Visual C#-Clients ist einfach. Jetzt verwenden Sie Komponenten aus dem eigenen ..\Bin-Unterverzeichnis und müssen diese daher mit Hilfe des Kompilierungsschalters /reference explizit einschließen:

csc.exe /debug+ /reference:..\Bin\CompCS.dll; 
   ..\Bin\CompVB.dll;..\Bin\CompVC.dll  
   /out:..\Bin\ClientCS.exe ClientCS.cs

Da Sie anstelle einer Komponente, die aus anderen Programmen aufgerufen werden kann, ein Clientprogramm erstellen, ist die Verwendung des Schalters /t nicht erforderlich.

Abgesehen davon, stimmt der Prozess mit dem in den vorherigen Visual C#-Beispielen überein. Beim Ausführen des sich daraus ergebenden Programms wird Folgendes ausgegeben:

C:\...\CompTest\Bin>clientcs
Strings from C# StringComponent
C# String 0
C# String 1
C# String 2
C# String 3

Strings from Visual C++ StringComponent
Visual C++ String 0
Visual C++ String 1
Visual C++ String 2
Visual C++ String 3

Strings from Visual Basic StringComponent
Visual Basic String 0
Visual Basic String 1
Visual Basic String 2
Visual Basic String 3

Siehe auch

Ein Client in Visual Basic | Ein Windows Forms verwendender Windows-Client | Ein ASP.NET verwendender Client | Zusammenfassung des Lernprogramms für Entwicklung | Anhang A: Tools zum Durchsuchen von Namespaces