跳转至

ApplicationServicesContext.RegisterApplicationServices 方法

描述应用程序服务的组成,而不依赖任何特定的 DI 容器。宿主接收服务类型/工厂对,并决定如何以及以何种生存期注册它们。

命名空间: Eremex.AvaloniaUI.Controls.ApplicationServices
程序集: Eremex.Avalonia.Controls.ApplicationServices.dll
NuGet 包: Eremex.Avalonia.Controls.ApplicationServices

声明

public static void RegisterApplicationServices(
    Action<Type, Func<IServiceProvider, object>> register)

参数

名称 类型 说明
register Action<Type, Func<IServiceProvider, object>> 针对每个服务调用一次,传入服务类型以及从 IServiceProvider 创建该服务的工厂。将每一对注册到您选择的容器中;这些服务设计为单例。

异常

异常 条件
ArgumentNullException register 为 null。

示例

Microsoft.Extensions.DependencyInjection:

ApplicationServicesContext.RegisterApplicationServices(
    (type, factory) => services.AddSingleton(type, sp => factory(sp)));

Autofac:

ApplicationServicesContext.RegisterApplicationServices(
    (type, factory) => builder.Register(c => factory(c.Resolve<IServiceProvider>())).As(type).SingleInstance());

另请参阅



* 本页面使用机器翻译技术翻译。