ServiceCreatorCallback 委托

提供一种回调机制,它可以即需创建服务的实例。

**命名空间:**System.ComponentModel.Design
**程序集:**System(在 system.dll 中)

语法

声明
<ComVisibleAttribute(True)> _
Public Delegate Function ServiceCreatorCallback ( _
    container As IServiceContainer, _
    serviceType As Type _
) As Object
用法
Dim instance As New ServiceCreatorCallback(AddressOf HandlerMethod)
[ComVisibleAttribute(true)] 
public delegate Object ServiceCreatorCallback (
    IServiceContainer container,
    Type serviceType
)
[ComVisibleAttribute(true)] 
public delegate Object^ ServiceCreatorCallback (
    IServiceContainer^ container, 
    Type^ serviceType
)
/** @delegate */
/** @attribute ComVisibleAttribute(true) */ 
public delegate Object ServiceCreatorCallback (
    IServiceContainer container, 
    Type serviceType
)
JScript 支持使用委托,但不支持进行新的声明。

参数

  • container
    请求创建服务的服务容器。
  • serviceType
    要创建的服务的类型。

返回值

由 serviceType 指定的服务;如果未能创建服务,则为 空引用(在 Visual Basic 中为 Nothing)。

备注

ServiceCreatorCallback 提供了一种发布服务的机制,使您可以在需要时请求创建服务,而不是在加载设计器后立即创建服务。如果服务并非必不可少而且可能不会使用,则可以使用回调函数。对于使用 ServiceCreatorCallback 发布的服务,如果没有对其发出请求并将其创建,就不能将它当作多种附加资源来使用。若要使用回调函数来发布服务,请将 ServiceCreatorCallback 传递给 IServiceContainerAddService 方法。

提示

应用于此类的 HostProtectionAttribute 属性 (Attribute) 具有以下 Resources 属性 (Property) 值:SharedStateHostProtectionAttribute 不影响桌面应用程序(桌面应用程序一般通过双击图标,键入命令或在浏览器中输入 URL 启动)。有关更多信息,请参见 HostProtectionAttribute 类或 SQL Server 编程和宿主保护属性

示例

下面的代码示例演示如何使用回调函数来发布服务。

' The following code shows how to publish a service using a callback function.

' Creates a service creator callback.
Dim callback1 As New ServiceCreatorCallback _
(AddressOf myCallBackMethod)
       
' Adds the service using its type and the service creator.
serviceContainer.AddService(GetType(myService), callback1)
// The following code shows how to publish a service using a callback function.

// Creates a service creator callback.
ServiceCreatorCallback callback1 = 
new ServiceCreatorCallback(myCallBackMethod);

// Adds the service using its type and the service creator callback.
serviceContainer.AddService(typeof(myService), callback1);
// The following code shows how to publish a service using a callback function.
// Creates a service creator callback.
ServiceCreatorCallback^ callback1 =
   gcnew ServiceCreatorCallback( this, &Sample::myCallBackMethod );

// Adds the service using its type and the service creator callback.
serviceContainer->AddService( myService::typeid, callback1 );
// The following code shows how to publish a service using a 
// callback function.
// Creates a service creator callback.
ServiceCreatorCallback callBack1 = new ServiceCreatorCallback(
    MyCallBackMethod);
// Adds the service using its type and the service creator callback.
serviceContainer.AddService(MyService.class.ToType(), callBack1);

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

System.ComponentModel.Design 命名空间
AddService
IServiceContainer 接口