我有一个 NuGet 包Repository,它有一个接口IRepository.cs和实现Repository.cs。
有没有办法针对接口注册实现(在作为 NuGet 发布的类库中)所以我不必在我使用 nuget 的每个项目中都这样做?
我有一个 NuGet 包Repository,它有一个接口IRepository.cs和实现Repository.cs。
有没有办法针对接口注册实现(在作为 NuGet 发布的类库中)所以我不必在我使用 nuget 的每个项目中都这样做?
您可以创建一个 Service Provider 实例以在您的类库内部使用依赖注入。
using Microsoft.Extensions.DependencyInjection;
public class Program
{
public static void Main(string[] args)
{
var serviceProvider = new ServiceCollection()
.AddSingleton<IRepository, Repository>()
.BuildServiceProvider();
var repository = serviceProvider.GetService<IRepository>();
}
}
interface IRepository {
void Do();
}
class Repository : IRepository
{
public void Do()
{
System.Console.WriteLine("Do");
}
}