ComCompatibleVersionAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
어셈블리의 현재 버전에 있는 모든 클래스가 이전 버전의 어셈블리의 클래스와 호환된다는 것을 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
- 상속
- 특성
예제
다음 예제에서는 더 높은 버전 번호를 가진 어셈블리에서 어셈블리 버전 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를 계산합니다.
생성자
| Name | Description |
|---|---|
| ComCompatibleVersionAttribute(Int32, Int32, Int32, Int32) |
어셈블리의 ComCompatibleVersionAttribute 주 버전, 부 버전, 빌드 및 수정 번호를 사용하여 클래스의 새 인스턴스를 초기화합니다. |
속성
| Name | Description |
|---|---|
| BuildNumber |
어셈블리의 빌드 번호를 가져옵니다. |
| MajorVersion |
어셈블리의 주 버전 번호를 가져옵니다. |
| MinorVersion |
어셈블리의 부 버전 번호를 가져옵니다. |
| RevisionNumber |
어셈블리의 수정 번호를 가져옵니다. |
| TypeId |
파생 클래스에서 구현되는 경우 이 Attribute대한 고유 식별자를 가져옵니다. (다음에서 상속됨 Attribute) |
메서드
| Name | Description |
|---|---|
| Equals(Object) |
이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
| GetHashCode() |
이 인스턴스의 해시 코드를 반환합니다. (다음에서 상속됨 Attribute) |
| GetType() |
현재 인스턴스의 Type 가져옵니다. (다음에서 상속됨 Object) |
| IsDefaultAttribute() |
파생 클래스에서 재정의되는 경우 이 인스턴스의 값이 파생 클래스의 기본값인지 여부를 나타냅니다. (다음에서 상속됨 Attribute) |
| Match(Object) |
파생 클래스에서 재정의되는 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
| MemberwiseClone() |
현재 Object단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
| ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
| Name | Description |
|---|---|
| _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) |