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());
另请参阅¶
* 本页面使用机器翻译技术翻译。