ComponentGuaranteesAttribute ComponentGuaranteesAttribute ComponentGuaranteesAttribute ComponentGuaranteesAttribute Class

Definizione

Definisce la garanzia di compatibilità di un componente, di un tipo o di un membro di tipo che può estendersi a più versioni.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
Ereditarietà
ComponentGuaranteesAttributeComponentGuaranteesAttributeComponentGuaranteesAttributeComponentGuaranteesAttribute
Attributi

Commenti

Il ComponentGuaranteesAttribute viene utilizzato dagli sviluppatori di componenti e librerie di classi per indicare il livello di compatibilità che i consumer delle rispettive librerie possono aspettarsi in più versioni.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 il livello di garanzia che una versione futura della libreria o un componente non verrà interrotto un client esistente.It indicates the level of guarantee that a future version of the library or component will not break an existing client. I client possono quindi usare il ComponentGuaranteesAttribute a supporto della progettazione di interfacce per garantire la stabilità in tutte le versioni.Clients can then use the ComponentGuaranteesAttribute as an aid in designing their own interfaces to ensure stability across versions.

Nota

Common language runtime (CLR) non viene utilizzato questo attributo in alcun modo.The common language runtime (CLR) does not use this attribute in any way. Il valore si trova in documentare formalmente l'intenzione dell'autore del componente.Its value lies in formally documenting the intent of the component author. Gli strumenti in fase di compilazione inoltre possono utilizzare queste dichiarazioni per rilevare errori in fase di compilazione che si interrompono in caso contrario, la garanzia dichiarata.Compile-time tools can also use these declarations to detect compile-time errors that would otherwise break the declared guarantee.

Livelli di compatibilitàLevels of Compatibility

Il ComponentGuaranteesAttribute supporta i seguenti livelli di compatibilità, che sono rappresentati dai membri del ComponentGuaranteesOptions enumerazione:The ComponentGuaranteesAttribute supports the following levels of compatibility, which are represented by members of the ComponentGuaranteesOptions enumeration:

  • Nessuna versione a versione compatibilità (ComponentGuaranteesOptions.None).No version-to-version compatibility (ComponentGuaranteesOptions.None). Il client può aspettarsi che le versioni future verranno interrotto il client esistente.The client can expect that future versions will break the existing client. Per altre informazioni, vedere la compatibilità No sezione più avanti in questo argomento.For more information, see the No Compatibility section later in this topic.

  • Compatibilità di versione a versione side-by-side (ComponentGuaranteesOptions.SideBySide).Side-by-side version-to-version compatibility (ComponentGuaranteesOptions.SideBySide). Il componente è stato testato per l'utilizzo quando più di una versione dell'assembly viene caricata nel dominio dell'applicazione stessa.The component has been tested to work when more than one version of the assembly is loaded in the same application domain. In generale, le versioni future possono interrompere la compatibilità.In general, future versions can break compatibility. Tuttavia, quando vengono apportate modifiche di rilievo, la versione precedente non viene modificata ma continua a esistere accanto alla nuova versione.However, when breaking changes are made, the old version is not modified but exists alongside the new version. Esecuzione side-by-side è quello previsto per il funzionamento dei client esistenti quando vengono apportate modifiche di rilievo.Side-by-side execution is the expected way to make existing clients work when breaking changes are made. Per altre informazioni, vedere la Side-by-Side compatibilità sezione più avanti in questo argomento.For more information, see the Side-by-Side Compatibility section later in this topic.

  • Compatibilità di versione a versione stabile (ComponentGuaranteesOptions.Stable).Stable version-to-version compatibility (ComponentGuaranteesOptions.Stable). Le versioni future non devono interrompere il client e l'esecuzione side-by-side non sono necessari.Future versions should not break the client, and side-by-side execution should not be needed. Tuttavia, se il client viene interrotto inavvertitamente, potrebbe essere possibile usare l'esecuzione side-by-side per risolvere il problema.However, if the client is inadvertently broken, it may be possible to use side-by-side execution to fix the problem. Per altre informazioni, vedere la una compatibilità stabile sezione.For more information, see the Stable Compatibility section.

  • Compatibilità di versione a versione di Exchange (ComponentGuaranteesOptions.Exchange).Exchange version-to-version compatibility (ComponentGuaranteesOptions.Exchange). È necessario prestare attenzione straordinaria per garantire che le versioni future non interromperanno il client.Extraordinary care is taken to ensure that future versions will not break the client. Il client deve utilizzare solo questi tipi nella firma di interfacce utilizzate per la comunicazione con altri assembly che vengono distribuite indipendentemente uno da altro.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. È previsto solo una versione di questi tipi in un dominio applicazione specificato, il che significa che se un client si interrompe, l'esecuzione side-by-side non è possibile risolvere il problema di compatibilità.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. Per altre informazioni, vedere la compatibilità dei tipi di Exchange sezione.For more information, see the Exchange Type Compatibility section.

Le sezioni seguenti illustrano ogni livello di garanzia più dettagliatamente.The following sections discuss each level of guarantee in greater detail.

Nessuna compatibilitàNo Compatibility

Il contrassegno di un componente come ComponentGuaranteesOptions.None indica che il provider non offre alcuna garanzia sulla compatibilità.Marking a component as ComponentGuaranteesOptions.None indicates that the provider makes no guarantees about compatibility. I client dovrebbero evitare di portare tutte le dipendenze sulle interfacce esposte.Clients should avoid taking any dependencies on the exposed interfaces. Questo livello di compatibilità è utile per i tipi che sono sperimentali o che vengono esposte pubblicamente ma servono solo per i componenti che vengono aggiornati sempre nello stesso momento.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 in modo esplicito che il componente non deve essere utilizzato dai componenti esterni.None explicitly indicates that this component should not be used by external components.

Compatibilità side-by-SideSide-by-Side Compatibility

Il contrassegno di un componente come ComponentGuaranteesOptions.SideBySide indica che il componente è stato testato per l'utilizzo quando più di una versione dell'assembly viene caricata nel dominio dell'applicazione stessa.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. Modifiche di rilievo apportate sono consentite fino a quando sono state apportate all'assembly che contiene il numero di versione maggiore.Breaking changes are allowed as long as they are made to the assembly that has the greater version number. I componenti che sono associati a una versione precedente dell'assembly devono continuare a eseguire l'associazione alla versione precedente e altri componenti possono associare alla nuova versione.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. È anche possibile aggiornare un componente che viene dichiarato come SideBySide modificando radicalmente la versione precedente.It is also possible to update a component that is declared to be SideBySide by destructively modifying the old version.

Compatibilità stabileStable Compatibility

Se si contrassegna un tipo come ComponentGuaranteesOptions.Stable indica che il tipo deve rimanere stabile in tutte le versioni.Marking a type as ComponentGuaranteesOptions.Stable indicates that the type should remain stable across versions. Tuttavia, può essere inoltre possibile che versioni side-by-side di un tipo stabile a esistere nello stesso dominio applicazione.However, it may also be possible for side-by-side versions of a stable type to exist in the same application domain.

Tipi stabili mantengono un indicatore di elevata compatibilità binaria.Stable types maintain a high binary compatibility bar. Per questo motivo, i provider devono essere evitate modifiche di rilievo ai tipi stabili.Because of this, providers should avoid making breaking changes to stable types. I seguenti tipi di modifiche sono accettabili:The following kinds of changes are acceptable:

  • I campi di istanza privata per l'aggiunta o rimozione di campi da un tipo, purché questo gestore non interrompe il formato di serializzazione.Adding private instance fields to, or removing fields from, a type, as long as this does not break the serialization format.

  • Modifica di un tipo non serializzabile in un tipo serializzabile.Changing a non-serializable type to a serializable type. (Tuttavia, un tipo serializzabile non può essere modificato in un tipo non serializzabile.)(However, a serializable type cannot be changed to a non-serializable type.)

  • Generazione di nuovo, più eccezioni derivate da un metodo.Throwing new, more derived exceptions from a method.

  • Miglioramento delle prestazioni di un metodo.Improving the performance of a method.

  • Modificare l'intervallo dei valori restituiti, purché la modifica non influisce negativamente la maggior parte dei client.Changing the range of return values, as long as the change does not adversely affect the majority of clients.

  • Correzione di bug gravi, se la giustificazione è elevata e il numero di client interessati è bassa.Fixing serious bugs, if the business justification is high and the number of adversely affected clients is low.

Perché le nuove versioni dei componenti stabile non devono interrompere i client esistenti, in genere in un dominio dell'applicazione è necessaria solo una versione di un componente stabile.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. Tuttavia, ciò non è un requisito, perché i tipi stabili non vengono usati come tipi noti exchange che concordano tra tutti i componenti.However, this is not a requirement, because stable types are not used as well-known exchange types that all components agree upon. Di conseguenza, se una nuova versione di un componente stabile cessa di funzionare alcuni componenti e altri componenti richiedono la nuova versione, potrebbe essere possibile risolvere il problema con il caricamento sia il componente vecchio e nuovo.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 offre una maggiore garanzia di compatibilità di versione rispetto a None.Stable provides a stronger version compatibility guarantee than None. È una comune predefinita per i componenti con più versioni.It is a common default for multi-version components.

Stable può essere combinato con SideBySide, in cui viene confermato che il componente non compromette la compatibilità, ma è stato testato per funzionare quando più di una versione viene caricata in un dominio applicazione specificato.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.

Dopo che un tipo o metodo è contrassegnato come Stable, possono essere aggiornato a Exchange.After a type or method is marked as Stable, it can be upgraded to Exchange. Non è possibile effettuare il downgrade a None.However, it cannot be downgraded to None.

Compatibilità dei tipi di ExchangeExchange Type Compatibility

Se si contrassegna un tipo come ComponentGuaranteesOptions.Exchange offre una maggiore garanzia di compatibilità di versione rispetto a Stablee devono essere applicate a tutti i tipi più stabile.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. Questi tipi devono essere utilizzati per lo scambio tra i componenti compilati in modo indipendente tra tutti i limiti dei componenti sia nel tempo (qualsiasi versione di Common Language Runtime) o qualsiasi versione di un'applicazione o componente e lo spazio (tra processi, cross-CLR in un unico processo, tra domini delle applicazioni in CLR a uno).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). Se viene apportata una modifica di rilievo a un tipo di exchange, non è possibile risolvere il problema con il caricamento di più versioni 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.

Tipi di Exchange devono essere modificati solo quando un problema è molto elevata (ad esempio un problema grave di sicurezza) o la probabilità di interruzione è molto bassa (vale a dire, se il comportamento è stato già interrotto in modo casuale da codice non avrebbe potuto presumibilmente scegliere una dipendenza su).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). È possibile apportare i seguenti tipi di modifiche a un tipo di exchange:You can make the following kinds of changes to an exchange type:

  • Aggiungere l'ereditarietà di nuove definizioni di interfaccia.Add inheritance of new interface definitions.

  • Aggiungere nuovi metodi privati che implementano i metodi di definizioni di interfaccia ereditati appena.Add new private methods that implement the methods of newly inherited interface definitions.

  • Aggiungere nuovi campi statici.Add new static fields.

  • Aggiungere nuovi metodi statici.Add new static methods.

  • Aggiungere nuovi metodi di istanza non virtuale.Add new non-virtual instance methods.

Di seguito è considerati modifiche di rilievo e non è consentiti per i tipi primitivi:The following are considered breaking changes and are not allowed for primitive types:

  • Modifica dei formati di serializzazione.Changing serialization formats. Serializzazione a tolleranza di versione è necessaria.Version-tolerant serialization is required.

  • Aggiunta o rimozione di campi di istanza privata.Adding or removing private instance fields. Ciò implica il rischio della modifica del formato di serializzazione del tipo e interrompere il codice client che usa la reflection.This risks changing the serialization format of the type and breaking client code that uses reflection.

  • Modifica la serializzabilità di un tipo.Changing the serializability of a type. Un tipo non serializzabile non può essere reso serializzabile e viceversa.A non-serializable type may not be made serializable, and vice versa.

  • Generazione di eccezioni diverse da un metodo.Throwing different exceptions from a method.

  • Modificare l'intervallo dei valori restituiti del metodo, a meno che la definizione del membro genera questa eventualità e indica chiaramente il modo in cui i client dovrebbero gestire valori sconosciuti.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.

  • Correggere la maggior parte dei bug.Fixing most bugs. I consumer del tipo si basano sul comportamento esistente.Consumers of the type will rely on the existing behavior.

Dopo che un componente, tipo o membro è contrassegnato con il Exchange garantire, non può essere modificato a uno Stable o None.After a component, type, or member is marked with the Exchange guarantee, it cannot be changed to either Stable or None.

In genere, i tipi di exchange sono i tipi di base (ad esempio Int32 e String in .NET Framework) e le interfacce (ad esempio IList<T>, IEnumerable<T>, e IComparable<T>) che vengono comunemente usati in interfacce pubbliche.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.

Tipi di scambio possono esporre pubblicamente solo altri tipi contrassegnati anche con Exchange compatibilità.Exchange types may publicly expose only other types that are also marked with Exchange compatibility. Inoltre, i tipi di scambio non possono dipendere dal comportamento delle API di Windows che tendono a cambiare.In addition, exchange types cannot depend on the behavior of Windows APIs that are prone to change.

Garanzie di componente: Un riepilogoComponent Guarantees: A Summary

Nella tabella seguente indica come le caratteristiche e utilizzo di un componente influiscono sulla garanzia di compatibilità.The following table indicates how a component's characteristics and usage affect its compatibility guarantee.

Caratteristiche di componenteComponent characteristics ExchangeExchange StableStable Side-by-SideSide-by-Side nessunoNone
Può essere usato nelle interfacce tra i componenti che la versione in modo indipendente.Can be used in interfaces between components that version independently. YY NN NN NN
Può essere usata (privata) da un assembly che le versioni in modo indipendente.Can be used (privately) by an assembly that versions independently. YY YY YY NN
Può avere più versioni in un solo dominio applicazione.Can have multiple versions in a single application domain. NN YY YY YY
Può apportare modifiche di rilievoCan make breaking changes NN NN YY YY
Testato per rendere che più versioni dell'assembly possono essere caricate contemporaneamente.Tested to make certain multiple versions of the assembly can be loaded together. NN NN YY NN
Può apportare modifiche di rilievo in posizione.Can make breaking changes in place. NN NN NN YY
Impostare molto sicura unificatori modifiche alla gestione.Can make very safe non-breaking servicing changes in place. YY YY YY YY

L'applicazione dell'attributoApplying the Attribute

È possibile applicare il ComponentGuaranteesAttribute a un assembly, un tipo o un membro del tipo.You can apply the ComponentGuaranteesAttribute to an assembly, a type, or a type member. L'applicazione è di tipo gerarchica.Its application is hierarchical. Vale a dire, per impostazione predefinita, la garanzia di base di Guarantees proprietà dell'attributo a livello di assembly definisce la garanzia di tutti i tipi nell'assembly e tutti i membri di tali tipi.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. Analogamente, se la garanzia viene applicata al tipo, per impostazione predefinita si applica anche a ogni membro del tipo.Similarly, if the guarantee is applied to the type, by default it also applies to each member of the type.

Può eseguire l'override di questa garanzia ereditata applicando il ComponentGuaranteesAttribute per singoli tipi e membri dei tipi.This inherited guarantee can be overridden by applying the ComponentGuaranteesAttribute to individual types and type members. Tuttavia, garantisce l'esecuzione di sostituire il valore predefinito possono solo indebolire la garanzia di; essi non possono potenziarlo.However, guarantees that override the default can only weaken the guarantee; they cannot strengthen it. Ad esempio, se un assembly è contrassegnato con il None garantisce, tipi e membri relativi alcuna garanzia di compatibilità, e qualsiasi altra garanzia che viene applicata a tipi o membri nell'assembly verrà ignorata.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.

La garanzia di testTesting the Guarantee

Il Guarantees proprietà restituisce un membro del ComponentGuaranteesOptions enumerazione, che è contrassegnato con il FlagsAttribute attributo.The Guarantees property returns a member of the ComponentGuaranteesOptions enumeration, which is marked with the FlagsAttribute attribute. Ciò significa che è necessario verificare i flag che è interessati mascherando contrassegni potenzialmente sconosciuti.This means that you should test for the flag that you are interested in by masking away potentially unknown flags. Ad esempio, nell'esempio seguente verifica se un tipo è contrassegnato come 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

Nell'esempio seguente verifica se un tipo è contrassegnato come 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

Nell'esempio riportato di seguito viene verificato se un tipo è contrassegnato come None (vale a dire, nessuna delle due StableExchange).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      

Costruttori

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

Inizializza una nuova istanza della classe ComponentGuaranteesAttribute con un valore che indica il livello di compatibilità garantito di librerie, tipi o membri fra più versioni.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.

Proprietà

Guarantees Guarantees Guarantees Guarantees

Ottiene un valore che indica il livello di compatibilità garantito di una libreria, di un tipo o di un membro di tipo che si estende a più versioni.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

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Metodi

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

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.Returns a value that indicates whether this instance is equal to a specified object.

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

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

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

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

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

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.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)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.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 superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

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

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.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)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.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 il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 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)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Si applica a

Vedi anche