-1

我有一个 NuGet 包Repository,它有一个接口IRepository.cs和实现Repository.cs

有没有办法针对接口注册实现(在作为 NuGet 发布的类库中)所以我不必在我使用 nuget 的每个项目中都这样做?

4

1 回答 1

-2

您可以创建一个 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");
    }
}
于 2021-06-17T18:31:11.863 回答