次の方法で共有


ComCompatibleVersionAttribute クラス

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

現在のバージョンのアセンブリ内のクラスはすべて、以前のバージョンのアセンブリ内のクラスと互換性があることを COM クライアントに対して示します。

この型のすべてのメンバの一覧については、ComCompatibleVersionAttribute メンバ を参照してください。

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

<AttributeUsage(AttributeTargets.Assembly)>
NotInheritable Public Class ComCompatibleVersionAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class ComCompatibleVersionAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Assembly)]
public __gc __sealed class ComCompatibleVersionAttribute : public   Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.Assembly)
class ComCompatibleVersionAttribute extends Attribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

この属性は、アセンブリに適用できます。

既定で タイプ ライブラリ エクスポータ (Tlbexp.exe) は、アセンブリのバージョン番号を使用してクラス ID (CLSID) を算出します。パブリックで COM 参照可能な各クラスには、新しいアセンブリのバージョンをエクスポートするごとに新しい CLSID が与えられます。

System.Runtime.InteropServices.ComCompatibleVersionAttribute.ComCompatibleVersionAttribute 属性を適用すると、現在のバージョンのアセンブリ内のクラスの CLSID がすべて、以前のバージョンのアセンブリ内のクラスの CLSID と同じになります。CLSID が同じである限り、以前のアセンブリをアンインストールした後でも、COM のレガシ アプリケーションは互換性があるアセンブリの最新バージョンをそのまま使用できます。CLSID を明示的に設定するため System.Runtime.InteropServices.GuidAttribute をクラスに適用した場合、 System.Runtime.InteropServices.ComCompatibleAttribute は無視されます。

アセンブリのバージョンの 4 つの部分は、この属性のプロパティの組み合わせで表されます。必ず、現在のアセンブリと下位互換性がある一番低いバージョンを指定してください。このバージョン情報がアセンブリ内のすべての CLSID の計算に使用されます。

使用例

[Visual Basic, C#] アセンブリのバージョンとして 1.0.0.0 を指定する方法を次の例に示します。この例では、アセンブリのバージョンにこれより大きい番号が定義されています。アセンブリの新しいバージョン番号にかかわらず、アセンブリ内の CLSID はすべてバージョン 1.0.0.0 を使用して生成されます。アセンブリの現在のバージョンは無視されます。

 
Imports System
Imports System.Runtime.Interop
Assembly: AssemblyVersion ("3.0.0.0")
Assembly: ComCompatibleVersionAttribute(1,0,0,0)
Module MyNamespace
  Public Class MyClass
    ' Insert code.
  End Class
   
[C#] 
using System;
using System.Runtime.InteropServices;
[Assembly: AssemblyVersion ("3.0.0.0")
[Assembly: ComCompatibleVersion(1,0,0,0)]
namespace MyNamespace
{
  class MyClass
  {
    // Insert code.
  }
}
   

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Runtime.InteropServices

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

ComCompatibleVersionAttribute メンバ | System.Runtime.InteropServices 名前空間 | GuidAttribute | タイプ ライブラリ エクスポータ (Tlbexp.exe)