ComUnregisterFunctionAttribute クラス
COM で使用できるように登録したアセンブリの登録を解除するときに呼び出すメソッドを指定します。これにより、登録解除中にユーザー記述コードを実行できます。
この型のすべてのメンバの一覧については、ComUnregisterFunctionAttribute メンバ を参照してください。
System.Object
System.Attribute
System.Runtime.InteropServices.ComUnregisterFunctionAttribute
<AttributeUsage(AttributeTargets.Method)>
NotInheritable Public Class ComUnregisterFunctionAttribute Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Method)]
public sealed class ComUnregisterFunctionAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Method)]
public __gc __sealed class ComUnregisterFunctionAttribute : public Attribute
[JScript]
public
AttributeUsage(AttributeTargets.Method)
class ComUnregisterFunctionAttribute extends Attribute
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
この属性は、メソッドに適用できます。
ComUnregisterFunctionAttribute を使用すると、登録メソッドが実行した操作を元に戻すためのコードを追加できます。 ComRegisterFunctionAttribute を適用して登録メソッドを提供する場合は、その登録メソッドで実行された操作を元に戻すための登録解除メソッドも提供する必要があります。登録解除メソッドは 1 クラスにつき 1 つしか提供できません。
格納しているアセンブリが アセンブリ登録ツール (Regasm.exe) や RegistrationServices.UnregisterAssembly API メソッドを使用して (直接または間接的に) 登録解除される場合、共通言語ランタイムはこの属性を持つメソッドを呼び出します。この属性を適用したメソッドの参照可能範囲 (パブリック、プライベートなど) は任意ですが、このメソッドは静的 (Visual Basic では Shared) である必要があり、登録解除する Type を表す 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 内)
参照
ComUnregisterFunctionAttribute メンバ | System.Runtime.InteropServices 名前空間 | ComRegisterFunctionAttribute | アセンブリ登録ツール (Regasm.exe) | RegistrationServices.UnregisterAssembly