InterfaceQueuingAttribute 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为标记的接口启用队列支持。 此类不能被继承。
public ref class InterfaceQueuingAttribute sealed : Attribute
	[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Interface, AllowMultiple=true, Inherited=true)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class InterfaceQueuingAttribute : Attribute
	[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Interface, AllowMultiple=true, Inherited=true)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type InterfaceQueuingAttribute = class
    inherit Attribute
	Public NotInheritable Class InterfaceQueuingAttribute
Inherits Attribute
		- 继承
 
- 属性
 
示例
下面的代码示例演示如何使用 InterfaceQueuingAttribute 特性。
public interface class IQueuedComponent
{
   void QueuedTask();
};
// Mark IQueuedComponent interface as queued
// Create the queued component class by inheriting the 
// System.EnterpriseServices.ServicedComponent class and an
// interface that is marked as queued with the InterfaceQueuing attribute
[InterfaceQueuing(true,Interface="IQueuedComponent")]
public ref class QueuedComponent sealed: public ServicedComponent, public IQueuedComponent
{
public:
   virtual void QueuedTask()
   {
      // Perform queued task here
   }
};
public interface IQueuedComponent
{
    void QueuedTask();
}
// Mark IQueuedComponent interface as queued
[InterfaceQueuing(true, Interface="IQueuedComponent")]
// Create the queued component class by inheriting the
// System.EnterpriseServices.ServicedComponent class and an
// interface that is marked as queued with the InterfaceQueuing attribute
public class QueuedComponent : ServicedComponent, IQueuedComponent
{
    public void QueuedTask()
    {
        // Perform queued task here
    }
}
下面的代码示例演示如何使用 ApplicationQueuing 特性在编译时将 COM+ 应用程序标记为已排队,并通过将 设置为 QueueListenerEnabled true 来启用 COM+ 侦听器
// Mark the COM+ application as queued at compile time by using the 
// ApplicationQueuing attribute. Enable the COM+ listener by 
// setting the QueueListenerEnabled to true
[assembly:ApplicationQueuing(Enabled=true,QueueListenerEnabled=true)];
// Mark the COM+ application as queued at compile time by using the
// ApplicationQueuing attribute. Enable the COM+ listener by
// setting the QueueListenerEnabled to true
[assembly: ApplicationQueuing(Enabled=true, QueueListenerEnabled=true)]
下面的代码示例演示如何使用 BindToMoniker 运行排队名字对象,获取记录器的实例,调用将记录的方法,并强制释放记录器对象,以将消息发送到队列。
// Use BindToMoniker to run the queued moniker, to get an instance of the recorder
IQueuedComponent ^ qc = dynamic_cast<IQueuedComponent^>(System::Runtime::InteropServices::Marshal::BindToMoniker( "queue:/new:QueuedComponent" ));
// Call the method that will be recorded
qc->QueuedTask();
// Force the release of the recorder object, to send the message to the queue
System::Runtime::InteropServices::Marshal::ReleaseComObject( qc );
// Use BindToMoniker to run the queued moniker, to get an instance of the recorder
IQueuedComponent qc =
    (IQueuedComponent)System.Runtime.InteropServices.Marshal.BindToMoniker("queue:/new:QueuedComponent");
// Call the method that will be recorded
qc.QueuedTask();
// Force the release of the recorder object, to send the message to the queue
System.Runtime.InteropServices.Marshal.ReleaseComObject(qc);
	注解
此接口上的调用将使用消息队列排队。
若要将接口标记为已排队,请使用以下语法将此属性应用于接口: [InterfaceQueuing]。
排队接口的成员方法必须满足排队方法调用的要求,例如没有 out 或 ref 参数。
有关使用特性的详细信息,请参阅 特性。
构造函数
| InterfaceQueuingAttribute() | 
		 初始化 InterfaceQueuingAttribute 类的新实例,并将 Enabled 和 Interface 属性设置为其默认值。  | 
        	
| InterfaceQueuingAttribute(Boolean) | 
		 初始化 InterfaceQueuingAttribute 类的新实例,并可以选择禁用队列支持。  | 
        	
属性
| Enabled | 
		 获取或设置一个值,该值指示是否启用队列支持。  | 
        	
| Interface | 
		 获取或设置在其上启用队列的接口的名称。  | 
        	
| TypeId | 
		 在派生类中实现时,获取此 Attribute 的唯一标识符。 (继承自 Attribute) | 
        	
方法
| Equals(Object) | 
		 返回一个值,该值指示此实例是否与指定的对象相等。 (继承自 Attribute) | 
        	
| GetHashCode() | 
		 返回此实例的哈希代码。 (继承自 Attribute) | 
        	
| GetType() | 
		 获取当前实例的 Type。 (继承自 Object) | 
        	
| IsDefaultAttribute() | 
		 在派生类中重写时,指示此实例的值是否是派生类的默认值。 (继承自 Attribute) | 
        	
| Match(Object) | 
		 当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。 (继承自 Attribute) | 
        	
| MemberwiseClone() | 
		 创建当前 Object 的浅表副本。 (继承自 Object) | 
        	
| ToString() | 
		 返回表示当前对象的字符串。 (继承自 Object) | 
        	
显式接口实现
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | 
		 将一组名称映射为对应的一组调度标识符。 (继承自 Attribute) | 
        	
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) | 
		 检索对象的类型信息,然后可以使用该信息获取接口的类型信息。 (继承自 Attribute) | 
        	
| _Attribute.GetTypeInfoCount(UInt32) | 
		 检索对象提供的类型信息接口的数量(0 或 1)。 (继承自 Attribute) | 
        	
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | 
		 提供对某一对象公开的属性和方法的访问。 (继承自 Attribute) |