ObjectPoolingAttribute 构造函数
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化 ObjectPoolingAttribute 类的新实例。
重载
ObjectPoolingAttribute() |
初始化 ObjectPoolingAttribute 类的新实例并将 Enabled、MaxPoolSize、MinPoolSize 和 CreationTimeout 属性设置为其默认值。 |
ObjectPoolingAttribute(Boolean) |
初始化 ObjectPoolingAttribute 类的新实例并设置 Enabled 属性。 |
ObjectPoolingAttribute(Int32, Int32) |
初始化 ObjectPoolingAttribute 类的新实例并设置 MaxPoolSize 和 MinPoolSize 属性。 |
ObjectPoolingAttribute(Boolean, Int32, Int32) |
初始化 ObjectPoolingAttribute 类的新实例并设置 Enabled、MaxPoolSize 和 MinPoolSize 属性。 |
ObjectPoolingAttribute()
初始化 ObjectPoolingAttribute 类的新实例并将 Enabled、MaxPoolSize、MinPoolSize 和 CreationTimeout 属性设置为其默认值。
public:
ObjectPoolingAttribute();
public ObjectPoolingAttribute ();
Public Sub New ()
示例
下面的代码示例演示如何使用此属性。
#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);
}
};
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);
}
}
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
Protected Overrides Sub Deactivate()
MessageBox.Show("Bye Bye!")
End Sub
' This object can be pooled.
Protected Overrides Function CanBePooled() As Boolean
Return True
End Function 'CanBePooled
End Class
注解
下表显示了 实例 ObjectPoolingAttribute的初始属性值。
属性 | 值 |
---|---|
已启用 | true |
MaxPoolSize | -1 |
MinPoolSize | -1 |
CreationTimeout | -1 |
适用于
ObjectPoolingAttribute(Boolean)
初始化 ObjectPoolingAttribute 类的新实例并设置 Enabled 属性。
public:
ObjectPoolingAttribute(bool enable);
public ObjectPoolingAttribute (bool enable);
new System.EnterpriseServices.ObjectPoolingAttribute : bool -> System.EnterpriseServices.ObjectPoolingAttribute
Public Sub New (enable As Boolean)
参数
- enable
- Boolean
如果启用对象池,则为 true
;否则为 false
。
示例
下面的代码示例创建新的 ObjectPoolingAttribute。
[ObjectPooling(true)]
public ref class ObjectPoolingAttributeCtorBool : public ServicedComponent
{
};
[ObjectPooling(true)]
public class ObjectPoolingAttribute_Ctor_Bool : ServicedComponent
{
}
<ObjectPooling(True)> _
Public Class ObjectPoolingAttribute_Ctor_Bool
Inherits ServicedComponent
End Class
适用于
ObjectPoolingAttribute(Int32, Int32)
初始化 ObjectPoolingAttribute 类的新实例并设置 MaxPoolSize 和 MinPoolSize 属性。
public:
ObjectPoolingAttribute(int minPoolSize, int maxPoolSize);
public ObjectPoolingAttribute (int minPoolSize, int maxPoolSize);
new System.EnterpriseServices.ObjectPoolingAttribute : int * int -> System.EnterpriseServices.ObjectPoolingAttribute
Public Sub New (minPoolSize As Integer, maxPoolSize As Integer)
参数
- minPoolSize
- Int32
最小池大小。
- maxPoolSize
- Int32
最大池大小。
示例
下面的代码示例创建新的 ObjectPoolingAttribute。
[ObjectPooling(1, 10)]
public ref class ObjectPoolingAttributeCtorIntInt : public ServicedComponent
{
};
[ObjectPooling(1, 10)]
public class ObjectPoolingAttribute_Ctor_Int_Int : ServicedComponent
{
}
<ObjectPooling(1, 10)> _
Public Class ObjectPoolingAttribute_Ctor_Int_Int
Inherits ServicedComponent
End Class
适用于
ObjectPoolingAttribute(Boolean, Int32, Int32)
初始化 ObjectPoolingAttribute 类的新实例并设置 Enabled、MaxPoolSize 和 MinPoolSize 属性。
public:
ObjectPoolingAttribute(bool enable, int minPoolSize, int maxPoolSize);
public ObjectPoolingAttribute (bool enable, int minPoolSize, int maxPoolSize);
new System.EnterpriseServices.ObjectPoolingAttribute : bool * int * int -> System.EnterpriseServices.ObjectPoolingAttribute
Public Sub New (enable As Boolean, minPoolSize As Integer, maxPoolSize As Integer)
参数
- enable
- Boolean
如果启用对象池,则为 true
;否则为 false
。
- minPoolSize
- Int32
最小池大小。
- maxPoolSize
- Int32
最大池大小。
示例
下面的代码示例创建新的 ObjectPoolingAttribute。
[ObjectPooling(true, 1, 10)]
public ref class ObjectPoolingAttributeCtorBoolIntInt :
public ServicedComponent
{
};
[ObjectPooling(true, 1, 10)]
public class ObjectPoolingAttribute_Ctor_Bool_Int_Int : ServicedComponent
{
}
<ObjectPooling(True, 1, 10)> _
Public Class ObjectPoolingAttribute_Ctor_Bool_Int_Int
Inherits ServicedComponent
End Class