(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

ExportAttribute-Klasse

Gibt an, dass ein Typ, eine Eigenschaft, ein Feld oder eine Methode einen bestimmten Export bereitstellt.

System.Object
  System.Attribute
    System.ComponentModel.Composition.ExportAttribute
      System.ComponentModel.Composition.InheritedExportAttribute

Namespace:  System.ComponentModel.Composition
Assembly:  System.ComponentModel.Composition (in System.ComponentModel.Composition.dll)

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple = true, 
	Inherited = false)]
public class ExportAttribute : Attribute

Der ExportAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekExportAttribute()Initialisiert eine neue Instanz der ExportAttribute-Klasse, wobei der unter dem Standardvertragsnamen mit diesem Attribut markierte Typ oder Member exportiert wird.
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekExportAttribute(String)Initialisiert eine neue Instanz der ExportAttribute-Klasse, wobei der unter dem angegebenen Vertragsnamen mit diesem Attribut markierte Typ oder Member exportiert wird.
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekExportAttribute(Type)Initialisiert eine neue Instanz der ExportAttribute-Klasse, wobei der unter einem aus dem angegebenen Typ abgeleiteten Vertragsnamen mit diesem Attribut markierte Typ oder Member exportiert wird.
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekExportAttribute(String, Type)Initialisiert eine neue Instanz der ExportAttribute-Klasse, wobei der angegebene Typ unter dem angegebenen Vertragsnamen exportiert wird.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekContractNameRuft den Vertragsnamen ab, der verwendet wird, um den mit diesem Attribut markierten Typ oder Member zu exportieren.
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekContractTypeRuft den Vertragstyp ab, der von dem Member exportiert wird, an den dieses Attribut angefügt ist.
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekEqualsInfrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.)
Geschützte MethodeUnterstützt von Portable KlassenbibliothekFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekGetHashCodeGibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeBeim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Geschützte MethodeUnterstützt von Portable KlassenbibliothekMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

Im Modell der attributierten Programmierung deklariert der ExportAttribute, dass ein Teil exportiert wird oder liefert dem Kompositionscontainer ein Objekt, das einen bestimmten Vertrag erfüllt. Während der Komposition verfügen die Importe, die übereinstimmende Verträge aufweisen, über jene Abhängigkeiten, die vom exportierten Objekt ausgefüllt werden.

Das ExportAttribute kann entweder eine ganze Klasse oder eine Eigenschaft, ein Feld oder eine Methode einer Klasse ergänzen. Wenn die gesamte Klasse ergänzt wird, ist eine Instanz der Klasse das exportierte Objekt. Wenn ein Member einer Klasse ergänzt wird, ist das exportierte Objekt der Wert des ergänzten Members.

Ob ein Vertrag übereinstimmt, wird hauptsächlich durch den Vertragsnamen und den Vertragstyp bestimmt. Weitere Informationen finden Sie unter ImportAttribute.

Das folgende Beispiel zeigt drei Klassen mit ergänztem ExportAttribute-Attribut und drei entsprechende Importe.


//Default export infers type and contract name from the
//exported type.  This is the preferred method.
[Export]
public class MyExport1
{
    public String data = "Test Data 1.";
}

public class MyImporter1
{
    [Import]
    public MyExport1 importedMember { get; set; }
}

public interface MyInterface
{

}

//Specifying the contract type may be important if
//you want to export a type other then the base type,
//such as an interface.
[Export(typeof(MyInterface))]
public class MyExport2 : MyInterface
{
    public String data = "Test Data 2.";
}

public class MyImporter2
{
    //The import must match the contract type!
    [Import(typeof(MyInterface))]
    public MyExport2 importedMember { get; set; }
}

//Specifying a contract name should only be 
//needed in rare caes. Usually, using metadata
//is a better approach.
[Export("MyContractName", typeof(MyInterface))]
public class MyExport3 : MyInterface
{
    public String data = "Test Data 3.";
}

public class MyImporter3
{
    //Both contract name and type must match!
    [Import("MyContractName", typeof(MyInterface))]
    public MyExport3 importedMember { get; set; }
}

class Program
{      

    static void Main(string[] args)
    {
        AggregateCatalog catalog = new AggregateCatalog();
        catalog.Catalogs.Add(new AssemblyCatalog(typeof(MyExport1).Assembly));
        CompositionContainer _container = new CompositionContainer(catalog);
        MyImporter1 test1 = new MyImporter1();
        MyImporter2 test2 = new MyImporter2();
        MyImporter3 test3 = new MyImporter3();
        _container.SatisfyImportsOnce(test1);
        _container.SatisfyImportsOnce(test2);
        _container.SatisfyImportsOnce(test3);
        Console.WriteLine(test1.importedMember.data);
        Console.WriteLine(test2.importedMember.data);
        Console.WriteLine(test3.importedMember.data);
        Console.ReadLine();

    }
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft