JustInTimeActivationAttribute クラス
アセンブリ: System.EnterpriseServices (system.enterpriseservices.dll 内)

<AttributeUsageAttribute(AttributeTargets.Class, Inherited:=True)> _ <ComVisibleAttribute(False)> _ Public NotInheritable Class JustInTimeActivationAttribute Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class, Inherited=true)] [ComVisibleAttribute(false)] public sealed class JustInTimeActivationAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class, Inherited=true)] [ComVisibleAttribute(false)] public ref class JustInTimeActivationAttribute sealed : public Attribute

JIT アクティベーションを指定した場合、COM+ カタログでは無効にしないでください。逆も同様です。JIT アクティベーションを COM+ カタログで有効にした場合は、コンポーネントで指定する必要があります。
COM+ で構成したコンポーネントの JIT アクティベーションは、既定ではオフに設定されます。ただし、自動トランザクションが要求されると自動的に有効になります。

Imports System Imports System.EnterpriseServices Imports System.Windows.Forms <Assembly: ApplicationName("ObjectInspector")> <Assembly: ApplicationActivation(ActivationOption.Server)> <Assembly: System.Reflection.AssemblyKeyFile("Inspector.snk")> <JustInTimeActivation(), ObjectPooling(MinPoolSize := 2, MaxPoolSize := 100, CreationTimeout := 1000)> _ Public Class ObjectInspector Inherits ServicedComponent Public Function IdentifyObject(ByVal obj As [Object]) As String ' Return this object to the pool after use. ContextUtil.DeactivateOnReturn = True ' Get the supplied object's type. Dim objType As Type = obj.GetType() ' Return its name. Return objType.FullName End Function 'IdentifyObject Protected Overrides Sub Activate() MessageBox.Show(String.Format("Now entering..." + vbLf + "Application: {0}" + vbLf + "Instance: {1}" + vbLf + "Context: {2}" + vbLf, ContextUtil.ApplicationId.ToString(), ContextUtil.ApplicationInstanceId.ToString(), ContextUtil.ContextId.ToString())) End Sub 'Activate Protected Overrides Sub Deactivate() MessageBox.Show("Bye Bye!") End Sub 'Deactivate ' This object can be pooled. Protected Overrides Function CanBePooled() As Boolean Return True End Function 'CanBePooled End Class 'ObjectInspector
using System; using System.EnterpriseServices; using System.Windows.Forms; [assembly: ApplicationName("ObjectInspector")] [assembly: ApplicationActivation(ActivationOption.Server)] [assembly: System.Reflection.AssemblyKeyFile("Inspector.snk")] [JustInTimeActivation] [ObjectPooling(MinPoolSize=2, MaxPoolSize=100, CreationTimeout=1000)] public class ObjectInspector : ServicedComponent { public string IdentifyObject (Object obj) { // Return this object to the pool after use. ContextUtil.DeactivateOnReturn = true; // Get the supplied object's type. Type objType = obj.GetType(); // Return its name. return(objType.FullName); } protected override void Activate() { MessageBox.Show( String.Format("Now entering...\nApplication: {0}\nInstance: {1}\nContext: {2}\n", ContextUtil.ApplicationId.ToString(), ContextUtil.ApplicationInstanceId.ToString() , ContextUtil.ContextId.ToString() ) ); } protected override void Deactivate() { MessageBox.Show("Bye Bye!"); } // This object can be pooled. protected override bool CanBePooled() { return(true); } }
#using <System.Windows.Forms.dll> #using <System.Transactions.dll> #using <System.EnterpriseServices.dll> using namespace System; using namespace System::EnterpriseServices; using namespace System::Windows::Forms; [assembly:ApplicationName("ObjectInspector")]; [assembly:ApplicationActivation(ActivationOption::Server)]; [assembly:System::Reflection::AssemblyKeyFile("Inspector.snk")]; [JustInTimeActivation] [ObjectPooling(MinPoolSize=2,MaxPoolSize=100,CreationTimeout=1000)] public ref class ObjectInspector: public ServicedComponent { public: String^ IdentifyObject( Object^ obj ) { // Return this object to the pool after use. ContextUtil::DeactivateOnReturn = true; // Get the supplied object's type. Type^ objType = obj->GetType(); // Return its name. return (objType->FullName); } protected: virtual void Activate() override { MessageBox::Show( String::Format( "Now entering...\nApplication: {0}\nInstance: {1}\nContext: {2}\n", ContextUtil::ApplicationId.ToString(), ContextUtil::ApplicationInstanceId.ToString(), ContextUtil::ContextId.ToString() ) ); } virtual void Deactivate() override { MessageBox::Show( "Bye Bye!" ); } // This object can be pooled. virtual bool CanBePooled() override { return (true); } };
import System.*; import System.EnterpriseServices.*; import System.Windows.Forms.*; /** @assembly ApplicationName("ObjectInspector") */ /** @assembly ApplicationActivation(ActivationOption.Server) */ /** @assembly System.Reflection.AssemblyKeyFile("Inspector.snk") */ /** @attribute JustInTimeActivation() */ /** @attribute ObjectPooling(MinPoolSize = 2, MaxPoolSize = 100, CreationTimeout = 1000) */ public class ObjectInspector extends ServicedComponent { public String IdentifyObject(Object obj) { // Return this object to the pool after use. ContextUtil.set_DeactivateOnReturn(true); // Get the supplied object's type. Type objType = obj.GetType(); // Return its name. return objType.get_FullName(); } //IdentifyObject protected void Activate() { MessageBox.Show(String.Format("Now entering...\nApplication: {0}\n" + "Instance: {1}\nContext: {2}\n", ContextUtil.get_ApplicationId().ToString(), ContextUtil.get_ApplicationInstanceId().ToString(), ContextUtil.get_ContextId().ToString())); } //Activate protected void Deactivate() { MessageBox.Show("Bye Bye!"); } //Deactivate // This object can be pooled. protected boolean CanBePooled() { return true; } //CanBePooled } //ObjectInspector

System.Attribute
System.EnterpriseServices.JustInTimeActivationAttribute


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- JustInTimeActivationAttribute クラスのページへのリンク