¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

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)

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

El tipo ExportAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con Biblioteca de clases portableExportAttribute()Inicializa una nueva instancia de la clase ExportAttribute, exportando el tipo o el miembro marcado con este atributo bajo el nombre de contrato predeterminado.
Método públicoCompatible con Biblioteca de clases portableExportAttribute(String)Inicializa una nueva instancia de la clase ExportAttribute y exporta el tipo o el miembro marcado con este atributo bajo el nombre de contrato especificado.
Método públicoCompatible con Biblioteca de clases portableExportAttribute(Type)Inicializa una nueva instancia de la clase ExportAttribute, exportando el tipo o el miembro marcado con este atributo bajo un nombre de contrato derivado del tipo especificado.
Método públicoCompatible con Biblioteca de clases portableExportAttribute(String, Type)Inicializa una nueva instancia de la clase ExportAttribute, exportando el tipo indicado con el nombre de contrato especificado.
Arriba

  NombreDescripción
Propiedad públicaCompatible con Biblioteca de clases portableContractNameObtiene el nombre de contrato que se usa para exportar el tipo o el miembro marcado con este atributo.
Propiedad públicaCompatible con Biblioteca de clases portableContractTypeObtiene el tipo de contrato exportado por el miembro al que está adjunto este atributo.
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba

  NombreDescripción
Método públicoCompatible con Biblioteca de clases portableEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Se hereda de Attribute).
Método protegidoCompatible con Biblioteca de clases portableFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoCompatible con Biblioteca de clases portableGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoCompatible con Biblioteca de clases portableGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método protegidoCompatible con Biblioteca de clases portableMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoCompatible con Biblioteca de clases portableToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

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

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

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

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 representado.

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

En el ejemplo siguiente se muestran tres clases representativas con 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

Compatible con: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Compatible con: 4

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

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 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos 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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft