ComponentGuaranteesAttribute ComponentGuaranteesAttribute ComponentGuaranteesAttribute ComponentGuaranteesAttribute Class

Definición

Define la garantía de la compatibilidad de un componente, tipo o miembro de tipo que puede abarcar varias versiones.Defines the compatibility guarantee of a component, type, or type member that may span multiple versions.

public ref class ComponentGuaranteesAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Module | System.AttributeTargets.Class | System.AttributeTargets.Struct | System.AttributeTargets.Enum | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Event | System.AttributeTargets.Interface | System.AttributeTargets.Delegate, AllowMultiple=false, Inherited=false)]
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Module | System.AttributeTargets.Property | System.AttributeTargets.Struct, AllowMultiple=false, Inherited=false)]
public sealed class ComponentGuaranteesAttribute : Attribute
type ComponentGuaranteesAttribute = class
    inherit Attribute
Public NotInheritable Class ComponentGuaranteesAttribute
Inherits Attribute
Herencia
ComponentGuaranteesAttributeComponentGuaranteesAttributeComponentGuaranteesAttributeComponentGuaranteesAttribute
Atributos

Comentarios

El ComponentGuaranteesAttribute lo utilizan los desarrolladores de componentes y bibliotecas de clases para indicar el nivel de compatibilidad que pueden esperar que los consumidores de sus bibliotecas entre varias versiones.The ComponentGuaranteesAttribute is used by developers of components and class libraries to indicate the level of compatibility that consumers of their libraries can expect across multiple versions. Indica el nivel de garantía de que una versión futura de la biblioteca o componente no interrumpirá a un cliente existente.It indicates the level of guarantee that a future version of the library or component will not break an existing client. Los clientes, a continuación, pueden usar el ComponentGuaranteesAttribute como ayuda para diseñar sus propias interfaces para garantizar la estabilidad entre versiones.Clients can then use the ComponentGuaranteesAttribute as an aid in designing their own interfaces to ensure stability across versions.

Nota

Common language runtime (CLR) no usa este atributo en modo alguno.The common language runtime (CLR) does not use this attribute in any way. Su valor se encuentra en la documentación formal de la intención del autor del componente.Its value lies in formally documenting the intent of the component author. Herramientas de tiempo de compilación también pueden usar estas declaraciones para detectar errores en tiempo de compilación que de lo contrario se interrumpirían la garantía declarada.Compile-time tools can also use these declarations to detect compile-time errors that would otherwise break the declared guarantee.

Niveles de compatibilidadLevels of Compatibility

El ComponentGuaranteesAttribute admite los siguientes niveles de compatibilidad, que están representados por los miembros de la ComponentGuaranteesOptions enumeración:The ComponentGuaranteesAttribute supports the following levels of compatibility, which are represented by members of the ComponentGuaranteesOptions enumeration:

  • No hay compatibilidad de versión a otra (ComponentGuaranteesOptions.None).No version-to-version compatibility (ComponentGuaranteesOptions.None). El cliente puede esperar que versiones futuras interrumpan al cliente existente.The client can expect that future versions will break the existing client. Para obtener más información, consulte el sin compatibilidad sección más adelante en este tema.For more information, see the No Compatibility section later in this topic.

  • Compatibilidad de versiones Side-by-side (ComponentGuaranteesOptions.SideBySide).Side-by-side version-to-version compatibility (ComponentGuaranteesOptions.SideBySide). El componente se ha probado para funcionar cuando se cargue más de una versión del ensamblado en el mismo dominio de aplicación.The component has been tested to work when more than one version of the assembly is loaded in the same application domain. En general, las versiones futuras pueden interrumpir la compatibilidad.In general, future versions can break compatibility. Sin embargo, cuando se realizan cambios importantes, la versión anterior no se modifica, pero existe junto con la nueva versión.However, when breaking changes are made, the old version is not modified but exists alongside the new version. Ejecución en paralelo es la manera esperada para que los clientes existentes funcionen cuando se realizan cambios importantes.Side-by-side execution is the expected way to make existing clients work when breaking changes are made. Para obtener más información, consulte el compatibilidad Side-by-Side sección más adelante en este tema.For more information, see the Side-by-Side Compatibility section later in this topic.

  • Estable de compatibilidad de versión a otra (ComponentGuaranteesOptions.Stable).Stable version-to-version compatibility (ComponentGuaranteesOptions.Stable). Las versiones futuras no deben interrumpir al cliente y ejecución en paralelo no debería ser necesario.Future versions should not break the client, and side-by-side execution should not be needed. Sin embargo, si el cliente se interrumpe sin darse cuenta, es posible usar la ejecución en paralelo para corregir el problema.However, if the client is inadvertently broken, it may be possible to use side-by-side execution to fix the problem. Para obtener más información, consulte el compatibilidad estable sección.For more information, see the Stable Compatibility section.

  • Compatibilidad de versión a versión de Exchange (ComponentGuaranteesOptions.Exchange).Exchange version-to-version compatibility (ComponentGuaranteesOptions.Exchange). Extraordinaria cuidado para asegurarse de que las versiones futuras no interrumpan al cliente.Extraordinary care is taken to ensure that future versions will not break the client. El cliente debe usar solo estos tipos en la firma de interfaces que se usan para la comunicación con otros ensamblados que se implementan de forma independiente entre sí.The client should use only these types in the signature of interfaces that are used for communication with other assemblies that are deployed independently of one another. Se espera que una sola versión de estos tipos en un dominio de aplicación determinada, lo que significa que si se interrumpe un cliente, la ejecución en paralelo no puede solucionar el problema de compatibilidad.Only one version of these types is expected to be in a given application domain, which means that if a client breaks, side-by-side execution cannot fix the compatibility problem. Para obtener más información, consulte el compatibilidad de tipo de intercambio sección.For more information, see the Exchange Type Compatibility section.

Las secciones siguientes tratan cada nivel de garantía con mayor detalle.The following sections discuss each level of guarantee in greater detail.

No hay compatibilidadNo Compatibility

Marcar un componente como ComponentGuaranteesOptions.None indica que el proveedor no ofrece ninguna garantía sobre la compatibilidad.Marking a component as ComponentGuaranteesOptions.None indicates that the provider makes no guarantees about compatibility. Los clientes deberían evitar establecer dependencias en las interfaces expuestas.Clients should avoid taking any dependencies on the exposed interfaces. Este nivel de compatibilidad es útil para los tipos que son experimentales o que se exponen públicamente pero está pensado solo para los componentes que se actualizan siempre al mismo tiempo.This level of compatibility is useful for types that are experimental or that are publicly exposed but are intended only for components that are always updated at the same time. None indica explícitamente que este componente no se debe usar los componentes externos.None explicitly indicates that this component should not be used by external components.

Compatibilidad en paraleloSide-by-Side Compatibility

Marcar un componente como ComponentGuaranteesOptions.SideBySide indica que el componente se ha probado para funcionar cuando se cargue más de una versión del ensamblado en el mismo dominio de aplicación.Marking a component as ComponentGuaranteesOptions.SideBySide indicates that the component has been tested to work when more than one version of the assembly is loaded into the same application domain. Cambios importantes se permiten siempre que realizaron al ensamblado que tiene el mayor número de versión.Breaking changes are allowed as long as they are made to the assembly that has the greater version number. Se esperan que los componentes que están enlazados a una versión anterior del ensamblado para continuar para enlazar a una versión anterior, y otros componentes pueden enlazarse a la nueva versión.Components that are bound to an old version of the assembly are expected to continue to bind to the old version, and other components can bind to the new version. También es posible actualizar un componente que se declara como SideBySide modificando la versión anterior de forma destructiva.It is also possible to update a component that is declared to be SideBySide by destructively modifying the old version.

Compatibilidad estableStable Compatibility

Marcar un tipo como ComponentGuaranteesOptions.Stable indica que el tipo debe permanecer estable entre versiones.Marking a type as ComponentGuaranteesOptions.Stable indicates that the type should remain stable across versions. Sin embargo, es posible también para las versiones en paralelo de un tipo estable que exista en el mismo dominio de aplicación.However, it may also be possible for side-by-side versions of a stable type to exist in the same application domain.

Los tipos estables mantienen una barra de alta compatibilidad binaria.Stable types maintain a high binary compatibility bar. Por este motivo, los proveedores deberían evitar realizar cambios importantes en tipos estables.Because of this, providers should avoid making breaking changes to stable types. Los siguientes tipos de cambios son aceptables:The following kinds of changes are acceptable:

  • Agregar campos de instancia privados a o quitar campos de un tipo, siempre y cuando no se interrumpe el formato de serialización.Adding private instance fields to, or removing fields from, a type, as long as this does not break the serialization format.

  • Cambiar el tipo no serializable a un tipo serializable.Changing a non-serializable type to a serializable type. (Sin embargo, un tipo serializable no se puede cambiar a un tipo no serializable.)(However, a serializable type cannot be changed to a non-serializable type.)

  • Generar nuevas, más las excepciones derivadas de un método.Throwing new, more derived exceptions from a method.

  • Mejorar el rendimiento de un método.Improving the performance of a method.

  • Cambiar el intervalo de valores devueltos, siempre y cuando el cambio no afecta negativamente a la mayoría de los clientes.Changing the range of return values, as long as the change does not adversely affect the majority of clients.

  • Corregir los errores graves, si la justificación empresarial es alta y el número de clientes afectados negativamente es baja.Fixing serious bugs, if the business justification is high and the number of adversely affected clients is low.

Porque no se esperan que las nuevas versiones de componentes estables interrumpirán a los clientes existentes, que generalmente se necesita solo una versión de un componente estable en un dominio de aplicación.Because new versions of stable components are not expected to break existing clients, generally only one version of a stable component is needed in an application domain. Sin embargo, esto no es un requisito, porque no se usan tipos estables como tipos conocidos de exchange que todos los componentes están de acuerdo.However, this is not a requirement, because stable types are not used as well-known exchange types that all components agree upon. Por lo tanto, si una nueva versión de un componente estable interrumpir accidentalmente algún componente, y otros componentes necesitan la nueva versión, es posible corregir el problema cargando el componente antiguo y nuevo.Therefore, if a new version of a stable component does inadvertently break some component, and if other components need the new version, it may be possible to fix the problem by loading both the old and new component.

Stable Proporciona una garantía de compatibilidad de versión más fuerte que None.Stable provides a stronger version compatibility guarantee than None. Es un valor predeterminado común para los componentes de varias versiones.It is a common default for multi-version components.

Stable se puede combinar con SideBySide, que indica que el componente no interrumpirá la compatibilidad, pero está probado para funcionar cuando se carga más de una versión en un dominio de aplicación determinado.Stable can be combined with SideBySide, which states that the component will not break compatibility but is tested to work when more than one version is loaded in a given application domain.

Después de un tipo o método está marcado como Stable, se puede actualizar a Exchange.After a type or method is marked as Stable, it can be upgraded to Exchange. Sin embargo, no se puede degradar a None.However, it cannot be downgraded to None.

Compatibilidad de tipo de intercambioExchange Type Compatibility

Marcar un tipo como ComponentGuaranteesOptions.Exchange proporciona una garantía de compatibilidad de versión más fuerte que Stabley se debe aplicar a todos los tipos más estable.Marking a type as ComponentGuaranteesOptions.Exchange provides a stronger version compatibility guarantee than Stable, and should be applied to the most stable of all types. Estos tipos están diseñados para usarse en el intercambio entre los componentes compilados de forma independiente en todos los límites de componente en tiempo de tanto (cualquier versión de CLR) o cualquier versión de una aplicación o componente y el espacio (entre procesos, entre CLR en un proceso, entre dominios de aplicación en un CLR).These types are intended to be used for interchange between independently built components across all component boundaries in both time (any version of the CLR or any version of a component or application) and space (cross-process, cross-CLR in one process, cross-application domain in one CLR). Si se realiza un cambio importante para un tipo de intercambio, es imposible corregir el problema mediante la carga de varias versiones del tipo.If a breaking change is made to an exchange type, it is impossible to fix the issue by loading multiple versions of the type.

Tipos de intercambio se deben cambiar solo cuando un problema es muy grave (por ejemplo, un problema de seguridad grave) o la probabilidad de interrupción es muy baja (es decir, si ya se ha interrumpido el comportamiento de forma aleatoria que código no es posible que llevaba una dependencia en).Exchange types should be changed only when a problem is very serious (such as a severe security issue) or the probability of breakage is very low (that is, if the behavior was already broken in a random way that code could not have conceivably taken a dependency on). Puede realizar los siguientes tipos de cambios a un tipo de exchange:You can make the following kinds of changes to an exchange type:

  • Agregue la herencia de nuevas definiciones de interfaz.Add inheritance of new interface definitions.

  • Agregar nuevos métodos privados que implementan los métodos de definiciones de interfaz recientemente heredadas.Add new private methods that implement the methods of newly inherited interface definitions.

  • Agregar nuevos campos estáticos.Add new static fields.

  • Agregar nuevos métodos estáticos.Add new static methods.

  • Agregar nuevos métodos de instancia no virtual.Add new non-virtual instance methods.

A continuación se considera cambios importantes y no se permite para los tipos primitivos:The following are considered breaking changes and are not allowed for primitive types:

  • Cambiar los formatos de serialización.Changing serialization formats. Se requiere la serialización tolerante a versiones.Version-tolerant serialization is required.

  • Agregar o quitar campos de instancia privados.Adding or removing private instance fields. Esto entraña el riesgo de cambiar el formato de serialización del tipo e interrumpir el código de cliente que usa la reflexión.This risks changing the serialization format of the type and breaking client code that uses reflection.

  • Cambiar la serialización de un tipo.Changing the serializability of a type. Un tipo no serializable es posible que no se puede hacer serializable y viceversa.A non-serializable type may not be made serializable, and vice versa.

  • Generar excepciones diferentes de un método.Throwing different exceptions from a method.

  • Cambiar el intervalo de valores devueltos de un método, a menos que la definición de miembro genera esta posibilidad e indica claramente cómo los clientes deben controlar los valores desconocidos.Changing the range of a method's return values, unless the member definition raises this possibility and clearly indicates how clients should handle unknown values.

  • Corregir la mayoría de los errores.Fixing most bugs. Los consumidores del tipo se basarán en el comportamiento existente.Consumers of the type will rely on the existing behavior.

Después de un componente, tipo o miembro está marcado con el Exchange garantiza que no se puede cambiar a cualquiera Stable o None.After a component, type, or member is marked with the Exchange guarantee, it cannot be changed to either Stable or None.

Normalmente, los tipos de intercambio son los tipos básicos (como Int32 y String en .NET Framework) e interfaces (como IList<T>, IEnumerable<T>, y IComparable<T>) que se usan habitualmente en las interfaces públicas.Typically, exchange types are the basic types (such as Int32 and String in the .NET Framework) and interfaces (such as IList<T>, IEnumerable<T>, and IComparable<T>) that are commonly used in public interfaces.

Tipos de intercambio pueden exponer públicamente sólo otros tipos que también están marcados con Exchange compatibilidad.Exchange types may publicly expose only other types that are also marked with Exchange compatibility. Además, los tipos de intercambio no pueden depender el comportamiento de las API de Windows que son propensos a cambiar.In addition, exchange types cannot depend on the behavior of Windows APIs that are prone to change.

Garantías de componente: Un resumenComponent Guarantees: A Summary

En la tabla siguiente indica cómo afectan las características y el uso de un componente a su garantía de compatibilidad.The following table indicates how a component's characteristics and usage affect its compatibility guarantee.

Características de componentesComponent characteristics ExchangeExchange StableStable Side-by-SideSide-by-Side NingunaNone
Puede ser usado en las interfaces entre los componentes de esa versión por separado.Can be used in interfaces between components that version independently. YY NN NN NN
Puede ser utilizada (privada) por un ensamblado que las versiones de forma independiente.Can be used (privately) by an assembly that versions independently. YY YY YY NN
Puede tener varias versiones en un único dominio de aplicación.Can have multiple versions in a single application domain. NN YY YY YY
Puede hacer cambios importantesCan make breaking changes NN NN YY YY
Probar para asegurarse de que se pueden cargar varias versiones del ensamblado juntos.Tested to make certain multiple versions of the assembly can be loaded together. NN NN YY NN
Puede hacer cambios importantes en su lugar.Can make breaking changes in place. NN NN NN YY
Puede hacer muy segura sin interrupción mantenimiento de los cambios en su lugar.Can make very safe non-breaking servicing changes in place. YY YY YY YY

Aplicar el atributoApplying the Attribute

Puede aplicar el ComponentGuaranteesAttribute a un ensamblado, un tipo o un miembro de tipo.You can apply the ComponentGuaranteesAttribute to an assembly, a type, or a type member. Su aplicación es jerárquica.Its application is hierarchical. Es decir, de forma predeterminada, la garantía definida por el Guarantees propiedad del atributo en el nivel de ensamblado define la garantía de todos los tipos en el ensamblado y todos los miembros de esos tipos.That is, by default, the guarantee defined by the Guarantees property of the attribute at the assembly level defines the guarantee of all types in the assembly and all members in those types. De forma similar, si la garantía se aplica al tipo, de forma predeterminada también se aplica a cada miembro del tipo.Similarly, if the guarantee is applied to the type, by default it also applies to each member of the type.

Se puede invalidar esta garantía heredada aplicando el ComponentGuaranteesAttribute a tipos y miembros de tipo individuales.This inherited guarantee can be overridden by applying the ComponentGuaranteesAttribute to individual types and type members. No obstante, garantiza que invalidar el valor predeterminado solo puede debilitar la garantía; no pueden reforzarlo.However, guarantees that override the default can only weaken the guarantee; they cannot strengthen it. Por ejemplo, si un ensamblado está marcado con el None garantizar, sus tipos y miembros no tienen ninguna garantía de compatibilidad y se omite cualquier otra garantía que se aplica a tipos o miembros del ensamblado.For example, if an assembly is marked with the None guarantee, its types and members have no compatibility guarantee, and any other guarantee that is applied to types or members in the assembly is ignored.

Probar la garantíaTesting the Guarantee

El Guarantees propiedad devuelve un miembro de la ComponentGuaranteesOptions enumeración, que está marcada con el FlagsAttribute atributo.The Guarantees property returns a member of the ComponentGuaranteesOptions enumeration, which is marked with the FlagsAttribute attribute. Esto significa que se debe comprobar el indicador que están interesados en mediante su enmascaramiento marcas potencialmente desconocidas.This means that you should test for the flag that you are interested in by masking away potentially unknown flags. Por ejemplo, en el ejemplo siguiente se comprueba si un tipo se marca como Stable.For example, the following example tests whether a type is marked as Stable.

// Test whether guarantee is Stable.
if ((guarantee & ComponentGuaranteesOptions.Stable) == ComponentGuaranteesOptions.Stable)
   Console.WriteLine("{0} is marked as {1}.", typ.Name, guarantee);
' Test whether guarantee is Stable.
If (guarantee And ComponentGuaranteesOptions.Stable) = ComponentGuaranteesOptions.Stable Then
   Console.WriteLine("{0} is marked as {1}.", typ.Name, guarantee)
End If

El ejemplo siguiente se comprueba si un tipo se marca como Stable o Exchange.The following example tests whether a type is marked as Stable or Exchange.

// Test whether guarantee is Stable or Exchange.
if ((guarantee & (ComponentGuaranteesOptions.Stable | ComponentGuaranteesOptions.Exchange)) > 0)
   Console.WriteLine("{0} is marked as Stable or Exchange.", typ.Name, guarantee);
' Test whether guarantee is Stable or Exchange.
If (guarantee And (ComponentGuaranteesOptions.Stable Or ComponentGuaranteesOptions.Exchange)) > 0 Then
   Console.WriteLine("{0} is marked as Stable or Exchange.", typ.Name, guarantee)
End If

El siguiente ejemplo se prueba si un tipo se marca como None (es decir, no Stable ni Exchange).The following example tests wither a type is marked as None (that is, neither Stable nor Exchange).

// Test whether there is no guarantee (neither Stable nor Exchange).
if ((guarantee & (ComponentGuaranteesOptions.Stable | ComponentGuaranteesOptions.Exchange)) == 0)
   Console.WriteLine("{0} has no compatibility guarantee.", typ.Name, guarantee);
' Test whether there is no guarantee (neither Stable nor Exchange).
If (guarantee And (ComponentGuaranteesOptions.Stable Or ComponentGuaranteesOptions.Exchange)) = 0 Then
   Console.WriteLine("{0} has no compatibility guarantee.", typ.Name, guarantee)
End If      

Constructores

ComponentGuaranteesAttribute(ComponentGuaranteesOptions) ComponentGuaranteesAttribute(ComponentGuaranteesOptions) ComponentGuaranteesAttribute(ComponentGuaranteesOptions) ComponentGuaranteesAttribute(ComponentGuaranteesOptions)

Inicializa una nueva instancia de la clase ComponentGuaranteesAttribute con un valor que indica el nivel garantizado de compatibilidad entre varias versiones de una biblioteca, un tipo o un miembro.Initializes a new instance of the ComponentGuaranteesAttribute class with a value that indicates a library, type, or member's guaranteed level of compatibility across multiple versions.

Propiedades

Guarantees Guarantees Guarantees Guarantees

Obtiene un valor que indica el nivel de compatibilidad garantizado de una biblioteca, tipo o miembro de tipo que abarca varias versiones.Gets a value that indicates the guaranteed level of compatibility of a library, type, or type member that spans multiple versions.

TypeId TypeId TypeId TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Se aplica a

Consulte también: