Compartilhar via


Classe ComCompatibleVersionAttribute

 

Dica

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Indica a um cliente COM que todas as classes na versão atual de um assembly são compatíveis com as classes em uma versão anterior do assembly.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (em mscorlib.dll)

Hierarquia de Herança

System.Object
  System.Attribute
    System.Runtime.InteropServices.ComCompatibleVersionAttribute

Sintaxe

[AttributeUsageAttribute(AttributeTargets.Assembly, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class ComCompatibleVersionAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Assembly, Inherited = false)]
[ComVisibleAttribute(true)]
public ref class ComCompatibleVersionAttribute sealed : Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Assembly, Inherited = false)>]
[<ComVisibleAttribute(true)>]
type ComCompatibleVersionAttribute = 
    class
        inherit Attribute
    end
<AttributeUsageAttribute(AttributeTargets.Assembly, Inherited := False)>
<ComVisibleAttribute(True)>
Public NotInheritable Class ComCompatibleVersionAttribute
    Inherits Attribute

Construtores

Nome Descrição
System_CAPS_pubmethod ComCompatibleVersionAttribute(Int32, Int32, Int32, Int32)

Inicializa uma nova instância da classe ComCompatibleVersionAttribute com os números da versão principal, da versão secundária, de build e de revisão do assembly.

Propriedades

Nome Descrição
System_CAPS_pubproperty BuildNumber

Obtém o número de build do assembly.

System_CAPS_pubproperty MajorVersion

Obtém o número de versão principal do assembly.

System_CAPS_pubproperty MinorVersion

Obtém o número de versão secundária do assembly.

System_CAPS_pubproperty RevisionNumber

Obtém o número de revisão do assembly.

System_CAPS_pubproperty TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.(Herdado de Attribute.)

Métodos

Nome Descrição
System_CAPS_pubmethod Equals(Object)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Retorna um valor que indica se essa instância é igual a um objeto especificado.(Herdado de Attribute.)

System_CAPS_pubmethod GetHashCode()

Retorna o código hash para essa instância.(Herdado de Attribute.)

System_CAPS_pubmethod GetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethod IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.(Herdado de Attribute.)

System_CAPS_pubmethod Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.(Herdado de Attribute.)

System_CAPS_pubmethod ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.(Herdado de Object.)

Implementações Explícitas da Interface

Nome Descrição
System_CAPS_pubinterfaceSystem_CAPS_privmethod _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.(Herdado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.(Herdado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod _Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).(Herdado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.(Herdado de Attribute.)

Comentários

Você pode aplicar esse atributo para assemblies.

Por padrão, o Tlbexp.exe (Exportador de Biblioteca de Tipos) usa o número de versão de um assembly para calcular os identificadores de classe (CLSIDs). Todos os públicos, o receberá classes COM visíveis novos CLSIDs toda vez que você exportar uma nova versão do assembly.

Você pode aplicar o ComCompatibleVersionAttribute atributo forçar CLSIDs todas as classes na versão atual de um assembly deve ser o mesmo que CLSIDs para classes em uma versão anterior do assembly. Como os CLSIDs permanecem os mesmos, um aplicativo herdado do COM pode usar a versão mais recente de um assembly compatível depois de desinstalar o assembly original. Se você aplicar o System.Runtime.InteropServices.GuidAttribute a uma classe para definir explicitamente o CLSID, o ComCompatibleVersionAttribute não tem nenhum efeito.

As propriedades desse atributo é combinar partes do formulário de quatro de uma versão de assembly. Sempre especifique a versão mais antiga que o assembly atual é compatível com versões anteriores para que essa versão é usada para calcular todas as CLSIDs no assembly.

Exemplos

O exemplo a seguir mostra como especificar a versão 1.0.0.0 do assembly em um assembly com um número de versão superior. Independentemente da nova versão do assembly, todos os CLSIDs no assembly são gerados usando a versão 1.0.0.0 em vez de usar a versão do assembly atual.

using System;
using System.Reflection;
using System.Runtime.InteropServices;

[assembly: AssemblyVersion("3.0.0.0")]
[assembly: ComCompatibleVersion(1,0,0,0)]
namespace MyNamespace
{
    public class TheClass
    {
        // Insert code.
    }
}
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

<assembly: AssemblyVersion("3.0.0.0")>
<assembly: ComCompatibleVersion(1,0,0,0)>
Namespace MyNamespace
    Public Class TheClass
        ' Insert code.
    End Class
End Namespace
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::InteropServices;

[assembly: AssemblyVersion("3.0.0.0")];
[assembly: ComCompatibleVersion(1,0,0,0)];
namespace MyNamespace
{
    public ref class TheClass
    {
        // Insert code.
    };
};

Informações de Versão

.NET Framework
Disponível desde 1.1

Acesso thread-safe

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Confira Também

GuidAttribute
Namespace System.Runtime.InteropServices
Tlbexp.exe (Exportador de Biblioteca de Tipos)

Retornar ao início