小编Arn*_*eek的帖子

在 ASP.NET Core 中的托管服务中使用范围服务

我有一项服务想要在其他临时服务之间共享。目前它还不是真正的服务,但在现实生活中它会。如何使用依赖注入共享我的服务?

我在下面添加了一些演示代码。对于 MyCreatorService 的“范围”中的 MyTransientService1 和 MyTransientService2,SharedService 应该是相同的对象。

第二个断言失败了,而这是我想要完成的。

    class Program
    {
        static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        private static IHostBuilder CreateHostBuilder(string[] args)
            => Host.CreateDefaultBuilder(args)
                .ConfigureServices((_, services) =>
                {
                    services.AddScoped<SharedService>();
                    services.AddTransient<MyTransientService1>();
                    services.AddTransient<MyTransientService2>();
                    services.AddTransient<MyCreatorService>();
                    services.AddHostedService<MyHostedService>();
                });
    }

    public class SharedService
    {
        public Guid Id { get; set; }
    }

    public class MyTransientService1
    {
        public SharedService Shared;

        public MyTransientService1(SharedService shared)
        {
            Shared = shared;
        }
    }

    public class MyTransientService2
    {
        public SharedService Shared;

        public MyTransientService2(SharedService shared)
        {
            Shared = shared;
        } …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection

5
推荐指数
1
解决办法
5752
查看次数

标签 统计

c# ×1

dependency-injection ×1