Freigeben über


Gültigkeitsbereich der Veröffentlichung

Unterschiedliche Remotingsysteme haben auch unterschiedliche Ansätze bei der Entscheidung darüber, welche Member und welcher Typ von Membern remote verwendet werden kann. .NET Remoting legt für andere Anwendungsdomänen Objekte so offen, als ob diese lokal wären, allerdings mit den folgenden Ausnahmen:

  • Statische Member.

    Statische Felder und Methoden werden niemals remote verwendet, und der Feldzugriff erfolgt direkt über den Arbeitsspeicher. Das heißt, bei .NET Remoting werden stets Instanzmember irgendeiner Form verarbeitet.

  • Instanzfelder und Accessoren.

    Bei Instanzfeldern und Accessormethoden schiebt das System zur Laufzeit eine Überprüfung ein, um zu bestimmen, ob es sich bei dem Objekt um einen Proxy handelt. Wenn es kein Proxy ist, erfolgt der Feldzugriff direkt. Andernfalls stellt der Proxy Accessoren für den Aufrufer bereit.

  • Private Methoden.

    Private Methoden können nicht verschoben werden. Es ist nicht möglich, einen Delegaten zu umfassen und remote an eine private Methode zu übergeben.

  • Delegaten.

    Delegaten sind Marshal-by-Value-Objekte. Das Objekt innerhalb des Delegaten kann ein beliebiger Typ eines remotefähigen Objekts sein: ein serialisierbares Objekt, ein MarshalByRefObject-Objekt oder ein ContextBoundObject-Objekt. Die einzige Ausnahme besteht darin, dass kein erfolgreiches Remoting eines Delegaten für eine Schnittstellenmethode ausgeführt werden kann. Der Delegat umfasst die Implementierung der Schnittstellenmethode, wobei erforderlich ist, dass die Typinformationen des Clients für den Server verfügbar sind.

  • Überschreiben von Methoden für "Object".

    Aus Leistungsgründen werden die virtuellen Methoden für Object-Methoden stets lokal in der Anwendungsdomäne ausgeführt, in der sie aufgerufen werden. Aufrufe einer der folgenden Methoden gehen nur an das Remoteobjekt, wenn diese Methoden für das Remoteobjekt überschrieben wurden:

    • Equals

      Diese virtuelle Methode wird, falls sie überschrieben wurde, remote ausgeführt.

    • GetHashCode

      Diese Methode wird lokal ausgeführt.

    • ToString

      Diese virtuelle Methode wird, falls sie überschrieben wurde, remote ausgeführt.

    • Equals (die statische Version)

      Diese Methode wird lokal ausgeführt.

    • MemberwiseClone

      Diese Methode wird lokal ausgeführt.

Siehe auch

Remotefähige und nicht remotefähige Objekte | MarshalByRefObject | ContextBoundObject | Object-Klasse