我想在我的类库项目中添加一些服务,我在 Google 上找到了一些方法https://mcguirev10.com/2018/01/31/net-core-class-library-dependency-injection.html 。但是,我不想在控制台应用程序或 Web 应用程序中注册服务。我想在类库中创建一个完整的解决方案,用户在使用该库时不需要注册服务。
这是我尝试过的:
这是我的服务类别:
public static class ServiceCollectionExtension
{
public static IServiceCollection AddServices(this IServiceCollection services)
{
services.AddSingleton<IClient, Client>();
return services;
}
}
我在网上找到了注册方法是这样的:
public class Program
{
public static async Task Main(string[] args)
{
var services = new ServiceCollection();
services.AddUsefulService();
}
}
但我不想那样做。
您可以尝试AutoRegisterDI。 在这里您可以找到一篇文章(链接在库自述文件中) 但请注意,正如评论的那样,通常微软也提供了一种扩展方法来手动注册依赖项,例如
builder.services.AddMyService()
。
我建议只使用一个扩展方法来注册您的库的所有依赖项。