Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

.NET language OS RichasyKernel.Abstractions RichasyKernel.Core

🚀 关于

RichasyKernel 是一个简单的依赖注入包装,它基于 Microsoft.Extensions.DependencyInjection.Abstractions。

我通过这个项目在多个应用中共享依赖注入代码。

📝 如何使用

RichasyKernel.Abstractions 提供一个 IKernelBuilder 接口,用于注册服务,你可以像这样使用:

var kernelBuilder = Kernel.CreateBuilder();
kernelBuilder.Services.AddSingleton<IFoo, Foo>();

调用 Kernel.CreateBuilder() 会返回一个库自带的简单实现:KernelBuilder,如果你有自定义需求,可以自行扩展 IKernelBuilder 接口。

当完成依赖注入后,你可以调用 kernelBuilder.Services.BuildServiceProvider() 来获取 IServiceProvider,或者你也可以创建一个 Kernel 对象:

var kernel = new Kernel(kernelBuilder.Services.BuildServiceProvider());

一般情况下,我更推荐你在引入 RichasyKernel.Core 后使用下面的写法:

// Extensions.cs
// 先将依赖写为静态扩展方法.
private static IKernelBuilder AddFoo(this IKernelBuilder builder)
{
    builder.Services.AddSingleton<IFoo, Foo>();
    return builder;
}

private static IKernelBuilder AddBar(this IKernelBuilder builder)
{
    builder.Services.AddSingleton<IBar, Bar>();
    return builder;
}

// Program.cs
// 然后在注入时链式调用,最终使用 Build 方法构建一个 Kernel 对象.
var kernel = Kernel
    .CreateBuilder()
    .AddFoo()
    .AddBar()
    .Build();

var foo = kernel.GetRequiredService<IFoo>();

About

RichasyKernel 是一个简单的依赖注入包装,它基于 Microsoft.Extensions.DependencyInjection.Abstractions

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Contributors

Languages