Richtungsattribute

Autor: Lewis Jackson
Erstelldatum: 8 Kann 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
02. Adding Meta Data Using Attributes - Front Line PHP
Video: 02. Adding Meta Data Using Attributes - Front Line PHP

Inhalt

Definition - Was bedeutet Richtungsattribute?

Richtungsattribute in C # sind Tags, die zum Angeben von Objektmethodenparametern mit Informationen zum gerichteten Datenfluss zwischen dem Aufrufer und dem Angerufenen verwendet werden.

Directional-Attribute steuern das Marshalling der Methodenparameter direction und return-Werte, bei dem ein Objekt für die Übertragung über eine Anwendung oder eine Prozessgrenze vorbereitet wird. Richtungsattribute werden angewendet, um das Laufzeit-Marshalling zu ändern, während verwalteter Code, der von der Common Language Runtime (CLR) ausgeführt wird, und nicht verwalteter Code, der außerhalb der Kontrolle der CLR ausgeführt wird, übertragen werden.


Eine Einführung in Microsoft Azure und die Microsoft Cloud | In diesem Handbuch erfahren Sie, worum es beim Cloud-Computing geht und wie Microsoft Azure Sie bei der Migration und Ausführung Ihres Unternehmens aus der Cloud unterstützen kann.

Techopedia erklärt Richtungsattribute

InAttribute und OutAttribute sind die beiden C # -Richtungsattribute, die für die Zuordnung zu den IDL-Attributen (Component Object Models) verwendet werden. InAttribute ordnet zu und OutAttribute ordnet zu zu. Der Rückgabewert der Signatur der verwalteten Methode wird in einer Typbibliothek zugeordnet. Es ist wichtig, das richtige Richtungsattribut für Methodenparameter anzugeben, damit die exportierende Typbibliothek die In / Out-Bits korrekt setzt.

Durch Anwenden von InAttribute und OutAttribute in Arrays und formatierten nicht ausblendbaren Typen (die keine gemeinsame verwaltete und nicht verwaltete Speicherdarstellung haben) sieht der Aufrufer Änderungen an den Angerufenen. Richtungsattribute, die auf diese Typen angewendet werden, reduzieren unnötige Kopien beim Marshalling.

In C # werden InAttribute und OutAttribute in drei Formen mit zwei Schlüsselwörtern während der Anrufer- und Angerufenen-Kommunikation verwendet:


  • "out" - impliziert
  • "ref" - impliziert,
  • (Keine Angabe) - (standardmäßig)

Die Schlüsselwörter out und ref werden für Werttypen und serialisierbare Referenztypen verwendet. Das Schlüsselwort ref impliziert, dass der Parameter in beide Richtungen gemarshallt wird, und out impliziert die Übertragung von Verbindungsdaten. Wenn ref oder out nicht verwendet werden, bedeutet dies, dass Daten an den Angerufenen übertragen werden.

Beispielsweise gibt eine .NET-Clientanwendung einen Eingabewert an eine COM-Komponentenmethode weiter, die das Eingabewertergebnis berechnet und das Ergebnis an den Client zurückgibt. Richtungsattribute können auf die Parameter des Verfahrens angewendet werden, das die Anforderung bedient, indem der erforderliche Marshalling-Typ für den Eingabewert und das Ergebnis angegeben wird.

Richtungsattribute weisen die folgenden Merkmale auf:


  • Optional und wird zur Entwurfszeit auf Methodenparameter angewendet
  • Wird nur für COM-Interop und Plattformaufruf unterstützt
  • InAttribute kann nicht auf einen Parameter mit einem out-Schlüsselwort angewendet werden

Der CLR-Interop-Marshaller stellt zur Laufzeit einen Marshalling-Service bereit, indem er Methodenaufrufargumente verarbeitet und Werte zwischen verwaltetem und nicht verwaltetem Speicher zurückgibt. Wenn keine Richtungsattribute definiert sind, bestimmt der Marshaller den Richtungsfluss basierend auf dem Parametertyp und dem Modifikator (falls vorhanden). Der Marshaller funktioniert folgendermaßen:

  • Die als "In" -Parameter aus nicht verwaltetem Code übergebenen Daten werden nicht überschrieben. Somit können nur Nur-Lese-Daten wie Daten, auf die gleichzeitig zugegriffen wird, weitergeleitet werden.
  • Beim Übergeben von Objekten - wie z. B. Basis- oder Binärzeichenfolgen (BSTR) - mit festgelegter Speicherzuordnung wird die richtige Zuordnungs- / Freigabereihenfolge gemäß den In- / Out-Einstellungen befolgt.
Diese Definition wurde in der con von C # geschrieben