Freigeben über


JustInTimeActivationAttribute-Klasse

Schaltet die JIT-Aktivierung (Just-in-Time) ein oder aus. Diese Klasse kann nicht vererbt werden.

Namespace: System.EnterpriseServices
Assembly: System.EnterpriseServices (in system.enterpriseservices.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.Class, Inherited:=True)> _
<ComVisibleAttribute(False)> _
Public NotInheritable Class JustInTimeActivationAttribute
    Inherits Attribute
'Usage
Dim instance As JustInTimeActivationAttribute
[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
/** @attribute AttributeUsageAttribute(AttributeTargets.Class, Inherited=true) */ 
/** @attribute ComVisibleAttribute(false) */ 
public final class JustInTimeActivationAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Class, Inherited=true) 
ComVisibleAttribute(false) 
public final class JustInTimeActivationAttribute extends Attribute

Hinweise

Wenn JIT-Aktivierung angegeben ist, darf sie im COM+-Katalog nicht deaktiviert werden, und umgekehrt. Wenn sie im COM+-Katalog aktiviert ist, muss sie für die Komponente angegeben werden.

In der Standardeinstellung ist die JIT-Aktivierung für Komponenten, die in COM+ konfiguriert sind, deaktiviert, sie wird aber automatisch aktiviert, wenn automatische Transaktionen angefordert werden.

Weitere Informationen über das Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Beispiel

Im folgenden Codebeispiel wird die Verwendung dieses Attributs veranschaulicht.

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 

Vererbungshierarchie

System.Object
   System.Attribute
    System.EnterpriseServices.JustInTimeActivationAttribute

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

JustInTimeActivationAttribute-Member
System.EnterpriseServices-Namespace