Поделиться через


ComCompatibleVersionAttribute Класс

Определение

Показывает клиенту COM, что все классы текущей версии сборки совместимы с классами в более ранней версии сборки.

public ref class ComCompatibleVersionAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
public sealed class ComCompatibleVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ComCompatibleVersionAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
type ComCompatibleVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ComCompatibleVersionAttribute = class
    inherit Attribute
Public NotInheritable Class ComCompatibleVersionAttribute
Inherits Attribute
Наследование
ComCompatibleVersionAttribute
Атрибуты

Примеры

В следующем примере показано, как указать версию сборки 1.0.0.0 в сборке с более высоким номером версии. Независимо от новой версии сборки, все идентификаторы CLSID в сборке создаются с использованием версии 1.0.0.0 вместо текущей версии сборки.

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.
    };
};
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.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

Комментарии

Этот атрибут можно применить к сборкам.

По умолчанию Tlbexp.exe (средство экспорта библиотек типов) использует номер версии сборки для вычисления идентификаторов классов (CLSID). Все общедоступные классы, видимые для COM, получают новые идентификаторы CLSID каждый раз при экспорте новой версии сборки.

Атрибут можно применить ComCompatibleVersionAttribute , чтобы все идентификаторы CLSID для классов в текущей версии сборки были теми же, что и идентификаторы CLSID для классов в более ранней версии сборки. Если идентификаторы CLSID остаются неизменными, устаревшее приложение COM может использовать более позднюю версию совместимой сборки после удаления исходной сборки. Если вы применяете System.Runtime.InteropServices.GuidAttribute к классу, чтобы явно задать его ИДЕНТИФИКАТОР CLSID, ComCompatibleVersionAttribute не будет действовать.

Свойства этого атрибута объединяются в четыре части версии сборки. Всегда указывайте наименьшую версию, с которыми текущая сборка обратно совместима, чтобы эта версия использовалась для вычисления всех идентификаторов CLSID в сборке.

Конструкторы

ComCompatibleVersionAttribute(Int32, Int32, Int32, Int32)

Инициализирует новый экземпляр класса ComCompatibleVersionAttribute, используя основной и дополнительный номера версий, номер построения и номер редакции сборки.

Свойства

BuildNumber

Получает номер построения сборки.

MajorVersion

Получает основной номер версии сборки.

MinorVersion

Получает дополнительный номер версии сборки.

RevisionNumber

Получает номер редакции сборки.

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.

(Унаследовано от Attribute)

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код данного экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)

Применяется к

См. также раздел