ExportAttribute Clase
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

ExportAttribute (Clase)

 

Especifica que un tipo, una propiedad, un campo o un método proporciona una exportación determinada.

Espacio de nombres:   System.ComponentModel.Composition
Ensamblado:  System.ComponentModel.Composition (en System.ComponentModel.Composition.dll)

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

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

NombreDescripción
System_CAPS_pubmethodExportAttribute()

Inicializa una nueva instancia de la ExportAttribute (clase), exportar el tipo o miembro marcado con este atributo bajo el nombre de contrato predeterminado.

System_CAPS_pubmethodExportAttribute(String)

Inicializa una nueva instancia de la ExportAttribute (clase), exportar el tipo o miembro marcado con este atributo bajo el nombre de contrato especificado.

System_CAPS_pubmethodExportAttribute(String, Type)

Inicializa una nueva instancia de la ExportAttribute clase, exportando el tipo especificado en el nombre de contrato especificado.

System_CAPS_pubmethodExportAttribute(Type)

Inicializa una nueva instancia de la ExportAttribute (clase), exportar el tipo o miembro marcado con este atributo bajo un nombre de contrato derivado del tipo especificado.

NombreDescripción
System_CAPS_pubpropertyContractName

Obtiene el nombre de contrato que se usa para exportar el tipo o miembro marcado con este atributo.

System_CAPS_pubpropertyContractType

Obtiene el tipo de contrato exportado por el miembro que está conectado este atributo.

System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute.)

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Esta API admite la infraestructura de product y no está pensada para usarse directamente desde su código. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Heredado de Attribute.)

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object.)

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Heredado de Attribute.)

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object.)

System_CAPS_pubmethodIsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.(Heredado de Attribute.)

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object.)

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object.)

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute.)

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

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute.)

En el modelo de programación con atributos, el ExportAttribute declara que una parte exporta, o proporciona al contenedor de composición, un objeto que cumple un contrato determinado. Durante la composición, partes con importaciones que tienen contratos coincidentes tendrán esas dependencias rellenadas mediante el objeto exportado.

La ExportAttribute puede decorar una clase completa o una propiedad, campo o método de una clase. Si se representa toda la clase, una instancia de la clase es el objeto exportado. Si se representa un miembro de una clase, el objeto exportado será el valor del miembro representativo.

Si no coincide con un contrato se determina principalmente por el nombre de contrato y el tipo de contrato. Para obtener más información, consulta ImportAttribute.

En el ejemplo siguiente se muestra tres clases decoradas con el ExportAttribute, y tres importaciones que coinciden.

//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
Disponible desde 4.0
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 4.0

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Volver al principio
Mostrar:
© 2016 Microsoft