ImportAttribute 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

ImportAttribute (Clase)

 

Especifica que el objeto CompositionContainer debe proporcionar un valor de propiedad, campo o parámetro.

Espacio de nombres:   System.ComponentModel.Composition
Ensamblado:  System.ComponentModel.Composition (en 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

NombreDescripción
System_CAPS_pubmethodImportAttribute()

Inicializa una nueva instancia de la clase ImportAttribute, importando la exportación con el nombre de contrato predeterminado.

System_CAPS_pubmethodImportAttribute(String)

Inicializa una nueva instancia de la clase ImportAttribute, importando la exportación con el nombre de contrato especificado.

System_CAPS_pubmethodImportAttribute(String, Type)

Inicializa una nueva instancia de la clase ImportAttribute, importando la exportación con el nombre de contrato y el tipo especificados.

System_CAPS_pubmethodImportAttribute(Type)

Inicializa una nueva instancia de la clase ImportAttribute, importando la exportación con el nombre de contrato derivado del tipo especificado.

NombreDescripción
System_CAPS_pubpropertyAllowDefault

Obtiene o establece un valor que indica si la propiedad, el campo o el parámetro se establecerá en el valor predeterminado de su tipo cuando no haya una exportación con el nombre de contrato en el contenedor.

System_CAPS_pubpropertyAllowRecomposition

Obtiene o establece un valor que indica si la propiedad o el campo se recompondrá cuando las exportaciones con un contrato coincidente hayan cambiado en el contenedor.

System_CAPS_pubpropertyContractName

Obtiene el nombre de contrato de la exportación que se va a importar.

System_CAPS_pubpropertyContractType

Obtiene el tipo de la exportación que se va a importar.

System_CAPS_pubpropertyRequiredCreationPolicy

Obtiene o establece un valor que indica que el importador necesita un objeto CreationPolicy específico para las exportaciones que se usan para satisfacer esta importación.

System_CAPS_pubpropertySource

Obtiene o establece un valor que especifica los ámbitos de los que esta importación puede satisfacer.

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()

Cuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para 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, ImportAttribute se usa para declarar las importaciones o dependencias, de una parte determinada.Puede decorar una propiedad, un campo o un método.Durante la composición, las importaciones de una parte las rellenará el objeto CompositionContainer al que pertenece la parte, usando las exportaciones que se proporcionan para ese objeto CompositionContainer.

Si una importación coincide con una exportación determinada se determina principalmente comparando el nombre de contrato y el tipo de contrato.Ordinariamente, no tiene que especificar alguno de éstos al usar el atributo de importación en código y se deducirán automáticamente del tipo del miembro representativo.Si la importación debe coincidir con una exportación de un tipo diferente (por ejemplo, una subclase del tipo del miembro representativo o una interfaz implementada por ese miembro), se debe especificar el tipo de contrato explícitamente.También se puede especificar explícitamente el nombre del contrato, por ejemplo para distinguir entre varios contratos con el mismo tipo, pero normalmente es mejor hacerlo a través de metadatos.Para obtener más información acerca de los metadatos, vea PartMetadataAttribute.

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