ComRegisterFunctionAttribute クラス
アセンブリを COM から使用できるように登録するときに呼び出すメソッドを指定します。これにより、登録処理中にユーザー記述のコードを実行できるようになります。
この型のすべてのメンバの一覧については、ComRegisterFunctionAttribute メンバ を参照してください。
System.Object
System.Attribute
System.Runtime.InteropServices.ComRegisterFunctionAttribute
<AttributeUsage(AttributeTargets.Method)>
NotInheritable Public Class ComRegisterFunctionAttribute Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Method)]
public sealed class ComRegisterFunctionAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Method)]
public __gc __sealed class ComRegisterFunctionAttribute : public Attribute
[JScript]
public
AttributeUsage(AttributeTargets.Method)
class ComRegisterFunctionAttribute extends Attribute
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
この属性は、メソッドに適用できます。
ComRegisterFunctionAttribute を使用すると、COM クライアントの要件に対応するための任意の登録コードを追加できます。たとえば、 Microsoft.Win32 名前空間の登録関数を使用してレジストリを更新できます。登録メソッドを提供する場合は、その登録メソッドで実行された操作を元に戻すための登録解除メソッドにも System.Runtime.InteropServices.ComUnregisterFunctionAttribute を適用する必要があります。
格納しているアセンブリが アセンブリ登録ツール (Regasm.exe) や RegistrationServices.RegisterAssembly API メソッドを使用して (直接的または間接的に) 登録される場合、共通言語ランタイムはこの属性を持つメソッドを呼び出します。この属性を持つメソッドの参照可能範囲 (パブリック、プライベートなど) は任意ですが、このメソッドは静的 (Visual Basic では Shared) である必要があり、登録する型を表す Type パラメータを 1 つ受け取る必要があります。
使用例
適切なシグネチャを持つメソッドに ComRegisterFunctionAttribute と ComUnregisterFunctionAttribute を適用する方法を次の例に示します。
Imports System
Imports System.Runtime.InteropServices
Public Class MyClassThatNeedsToRegister
<ComRegisterFunctionAttribute()> Public Shared Sub _
RegisterFunction(t As Type)
'Insert code here.
End Sub
<ComUnregisterFunctionAttribute()> Public Shared Sub _
UnregisterFunction(t As Type)
'Insert code here.
End Sub
End Class
[C#]
using System;
using System.Runtime.InteropServices;
public class MyClassThatNeedsToRegister
{
[ComRegisterFunctionAttribute]
public static void RegisterFunction(Type t)
{
//Insert code here.
}
[ComUnregisterFunctionAttribute]
public static void UnregisterFunction(Type t)
{
//Insert code here.
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Runtime::InteropServices;
public __gc class MyClassThatNeedsToRegister
{
public:
[ComRegisterFunctionAttribute]
static void RegisterFunction(Type* t)
{
//Insert code here.
}
public:
[ComUnregisterFunctionAttribute]
static void UnregisterFunction(Type* t)
{
//Insert code here.
}
};
[JScript]
import System;
import System.Runtime.InteropServices;
public class MyClassThatNeedsToRegister
{
ComRegisterFunctionAttribute public static function RegisterFunction(t : Type) : void
{
//Insert code here.
}
ComUnregisterFunctionAttribute public static function UnregisterFunction(t : Type) : void
{
//Insert code here.
}
}
必要条件
名前空間: 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 内)
参照
ComRegisterFunctionAttribute メンバ | System.Runtime.InteropServices 名前空間 | ComUnregisterFunctionAttribute | アセンブリ登録ツール (Regasm.exe) | RegisterAssembly