Ten artykuł został przetłumaczony przez maszynę. Aby wyświetlić jego treść w języku angielskim, zaznacz pole wyboru Angielski. Możesz też wyświetlić angielski tekst w okienku wyskakującym, przesuwając wskaźnik myszy nad konkretny tekst”.
Tłumaczenie
Angielski

Klasa ImportAttribute

.NET Framework (current version)
 

Data opublikowania: październik 2016

Określa, że wartość właściwości, pola lub parametr powinny być dostarczone przez CompositionContainer.object

Przestrzeń nazw:   System.ComponentModel.Composition
Zestaw:  System.ComponentModel.Composition (w System.ComponentModel.Composition.dll)

System.Object
  System.Attribute
    System.ComponentModel.Composition.ImportAttribute

[AttributeUsageAttribute(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, 
	AllowMultiple = false, Inherited = false)]
public class ImportAttribute : Attribute

NazwaOpis
System_CAPS_pubmethodImportAttribute()

Inicjuje nowe wystąpienie ImportAttribute klasy, importowanie eksportu z domyślną nazwą kontraktu.

System_CAPS_pubmethodImportAttribute(String)

Inicjuje nowe wystąpienie ImportAttribute klasy, importowanie eksportu o nazwie określonej kontraktu.

System_CAPS_pubmethodImportAttribute(String, Type)

Inicjuje nowe wystąpienie ImportAttribute klasy, importowanie eksportu o nazwie określonej umowy i typu.

System_CAPS_pubmethodImportAttribute(Type)

Inicjuje nowe wystąpienie ImportAttribute klasy, importowanie eksportu o nazwie kontraktu pochodzić z określonego typu.

NazwaOpis
System_CAPS_pubpropertyAllowDefault

Pobiera lub ustawia wartość wskazującą, czy właściwość, pole lub parametru zostanie ustawiona wartość domyślna jego typ podczas eksportowania o nazwie Umowy nie znajduje się w kontenerze.

System_CAPS_pubpropertyAllowRecomposition

Pobiera lub ustawia wartość wskazującą, czy właściwość lub pole będzie przeskładanie podczas eksportu za pomocą kontraktu pasującego zostały zmienione w kontenerze.

System_CAPS_pubpropertyContractName

Pobiera nazwę kontraktu eksportu do zaimportowania.

System_CAPS_pubpropertyContractType

Pobiera typ eksportu do zaimportowania.

System_CAPS_pubpropertyRequiredCreationPolicy

Pobiera lub ustawia wartość wskazującą, że importer wymaga określonej CreationPolicy przypadku eksportu użyte do zaspokojenia tego importu.

System_CAPS_pubpropertySource

Pobiera lub ustawia wartość określającą zakresy, z których można spełnić tego importu.

System_CAPS_pubpropertyTypeId

Gdy zaimplementowane do klasy pochodnej, pobiera unikatowy identyfikator dla tego Attribute.(Dziedziczone z Attribute).

NazwaOpis
System_CAPS_pubmethodEquals(Object)

Ten interfejs API obsługuje infrastrukturę produkt i nie jest przeznaczony do użycia bezpośrednio w kodzie. Zwraca wartość, która wskazuje, czy to wystąpienie jest równe określonemu obiektowi. (Dziedziczone z Attribute).

System_CAPS_protmethodFinalize()

Pozwala, aby obiekt spróbował zwolnić zasoby i wykonał inne operacje czyszczenia, zanim zostanie odzyskany przez moduł zbierający elementy bezużyteczne. (Dziedziczone z Object).

System_CAPS_pubmethodGetHashCode()

Zwraca tablicę skrótu dla tego wystąpienia. (Dziedziczone z Attribute).

System_CAPS_pubmethodGetType()

Pobiera Type bieżącego wystąpienia.(Dziedziczone z Object).

System_CAPS_pubmethodIsDefaultAttribute()

Gdy zastąpiony w klasie pochodnej, wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Dziedziczone z Attribute).

System_CAPS_pubmethodMatch(Object)

Gdy zastąpiony w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Dziedziczone z Attribute).

System_CAPS_protmethodMemberwiseClone()

Tworzy płytką kopię bieżącego Object.(Dziedziczone z Object).

System_CAPS_pubmethodToString()

Zwraca łańcuch znaków, reprezentujący aktualny obiekt. (Dziedziczone z Object).

NazwaOpis
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.(Dziedziczone z Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może być użyty do uzyskania informacji o typie dla interfejsu. (Dziedziczone z Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Pobiera ilość interfejsów typów informacji, które obiekt dostarcza (0 lub 1). (Dziedziczone z Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Zapewnia dostęp do właściwości i metod udostępnianych przez obiekt.(Dziedziczone z Attribute).

Oparte na atrybutach programowania model ImportAttribute służy do deklarowania imports lub zależności z danej strony. Jego dekorowania właściwości, pola i metody. Podczas tworzenia, importowania części zostaną wypełnione przez CompositionContainer obiektu, do której należy ta część, przy użyciu eksportuje podane w tym CompositionContainer obiektu.

Czy importowania odpowiada eksportu danego zależy przede wszystkim przez porównanie Nazwa kontraktu i typ umowy. Zazwyczaj nie należy określić jedną z tych po użyciu atrybut import w kodzie i będzie można automatycznie wywnioskować z typu ozdobione elementu członkowskiego. Jeśli importu musi odpowiadać eksportu innego typu (na przykład podklasa typ ozdobione elementu członkowskiego lub interfejs implementowany przez ten element członkowski), następnie typ kontraktu musi być jawnie określony. Nazwa kontraktu można także jawnie określić, na przykład w celu rozróżnienia między wielu umów tego samego typu, ale lepiej w tym metadanych. Aby uzyskać więcej informacji o metadanych, zobacz PartMetadataAttribute.

W poniższym przykładzie przedstawiono trzy klasy z członkami ozdobione ImportAttribute, i trzy eksportu, zgodne z nich.

//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
Dostępne od 4.0
Biblioteka klas przenośnych
Obsługiwane w: przenośne platformy .NET
Silverlight
Dostępne od 4.0

Wszystkie publiczne statyczne ( Shared w języku Visual Basic) elementy członkowskie tego typu są wątkowo bezpieczne. Dla żadnych elementów członkowskich wystąpień nie ma gwarancji bezpieczeństwa wątkowego.

Powrót do początku
Pokaż: