基于注解的服务自动查找与注册的DI扩展。使用SourceGenerator无反射,完美支持AOT。
<PackageReference Include="DependencyInjection.Annotation" Version="1.1.2" />
[Service(ServiceLifetime.Singleton)]
class MyService
{
}
[Service(ServiceLifetime.Singleton, typeof(IMyService1))]
class MyService : IMyService1
{
}
[Service(ServiceLifetime.Singleton, typeof(IMyService1), typeof(IMyService2))]
class MyService : IMyService1, IMyService2, IDisposable
{
}
builder.Services.Add{AssemblyName}();
其中{AssemblyName}为包含服务的程序集名。