Asp.net core 创建IHubContext的实例<;MyClass>;在带有简单喷射器的webjob中

Asp.net core 创建IHubContext的实例<;MyClass>;在带有简单喷射器的webjob中,asp.net-core,dependency-injection,simple-injector,asp.net-core-signalr,Asp.net Core,Dependency Injection,Simple Injector,Asp.net Core Signalr,我正在使用.NET Core 2.2和SignalR Core,我需要在我的Webjob中通过简单的注入器注入IHubContext 它在我的web应用程序中运行得很好,但当我试图通过web job获得服务时,它抱怨缺少IHubContext 我需要一种通过简单的注入器注册的方法 这是我的Webjob中Program.cs文件中的配置 使用AutoMapper; 使用Gateway.BLL.BaseClasses; 使用Gateway.BLL.Config; 使用Gateway.BLL.Serv

我正在使用.NET Core 2.2和SignalR Core,我需要在我的Webjob中通过简单的注入器注入
IHubContext

它在我的web应用程序中运行得很好,但当我试图通过web job获得服务时,它抱怨缺少
IHubContext

我需要一种通过简单的注入器注册的方法

这是我的Webjob中Program.cs文件中的
配置

使用AutoMapper;
使用Gateway.BLL.BaseClasses;
使用Gateway.BLL.Config;
使用Gateway.BLL.Services;
使用Gateway.BLL.Services.Interfaces;
使用Gateway.BLL.signer;
使用Gateway.Model.MappingProfiles;
使用Gateway.Repository;
使用Gateway.Repository.Interfaces;
使用Gateway.Repository.Repositories;
使用Microsoft.AspNetCore.signal;
使用Microsoft.AspNetCore.signal.Internal;
使用Microsoft.Azure.WebJobs.Extensions.SignalsService;
使用Microsoft.Azure.WebJobs.Host;
使用Microsoft.EntityFrameworkCore;
使用Microsoft.Extensions.Caching.Memory;
使用Microsoft.Extensions.Configuration;
使用Microsoft.Extensions.DependencyInjection;
使用Microsoft.Extensions.Hosting;
使用Microsoft.Extensions.Logging;
使用SimpleInjector;
使用制度;
使用System.IO;
使用System.Net.Http;
命名空间网关.WebJob
{
班级计划
{
私有静态void Main()
{
var container=新容器();
DbContextOptionsBuilder ob=新的DbContextOptionsBuilder();
var config=新的MapperConfiguration
(cfg=>
{
AddProfile(新的ModelMappingProfile());
}
);
var mapper=config.CreateMapper();
var loggerFactory=new loggerFactory();
ServiceCollection sr=新的ServiceCollection();
高级addsignal();
var serviceProvider=sr.AddHttpClient().BuildServiceProvider();
var httpClientFactory=serviceProvider.GetService();
IConfigurationBuilder configurationBuilder=新的configurationBuilder();
//在此处复制您使用的任何配置源。
configurationBuilder.AddJsonFile(“appsettings.json”);
IConfiguration configuration=configurationBuilder.Build();
var medchartApiConfiguration=新的medchartApiConfiguration();
绑定(“MedchartApiConfiguration”,MedchartApiConfiguration);
var serviceBusConfiguration=新serviceBusConfiguration();
绑定(“ServiceBusConfiguration”,ServiceBusConfiguration);
ob=ob.UseSqlServer(配置[“ConnectionString:GatewayDB”]);
IMemoryCache memoryCache=新的memoryCache(新的MemoryCacheOptions());
配置服务(sr);
var builder=新主机生成器();
builder.ConfigureWebJobs(b=>
{
b、 AddAzureStorageCoreServices();
b、 AddServiceBus(o=>
{
o、 MessageHandlerOptions.AutoComplete=true;
o、 MessageHandlerOptions.MaxConcurrentCalls=10;
o、 ConnectionString=“Endpoint=sb://gatewayqueue.servicebus.windows.net/;SharedAccessKeyName=admin;SharedAccessKey=wd2ywcejt2g3q4ykvdoiu2251yd5fizcn5acuumzd4=”;
}).addsignal();
});
builder.ConfigureLogging((上下文,b)=>
{
b、 AddConsole();
string instrumentationKey=context.Configuration[“APPINSIGHTS_instrumentationKey”];
如果(!string.IsNullOrEmpty(instrumentationKey))
{
b、 添加ApplicationInsightsWebJobs(o=>o.InstrumentationKey=InstrumentationKey);
}
});
builder.ConfigureServices((主机上下文,服务)=>{
//services.AddHttpClient();
//绑定(“MedchartApiConfiguration”,MedchartApiConfiguration);
//服务。AddSingleton(medchartApiConfiguration);
服务。AddSingleton(集装箱);
services.addScope();
services.addScope();
});
container.Register();
container.Register();
container.Register();
container.Register();
container.Register();
container.Register();
container.Register();
container.Register();
container.Register();
container.Register();
container.Register();
集装箱登记单(httpClientFactory);
容器注册单(memoryCache);
容器注册单(medchartApiConfiguration);
container.RegisterSingleton(serviceBusConfiguration);
容器。注册(()=>loggerFactory,Lifestyle.Singleton);
container.RegisterSingleton(配置);
容器.RegisterSingleton(typeof(ILogger),typeof(Logger));
容器.RegisterSingleton(typeof(ILogger),typeof(Logger));
容器.RegisterSingleton(typeof(ILogger),typeof(Logger));
容器.RegisterSingleton(typeof(ILogger),typeof(Logger));
容器.RegisterSingleton(typeof(ILogger),typeof(Logger));
容器.RegisterSingleton(typeof(ILogger),typeof(Logger));
容器.RegisterSingleton(typeof(ILogger),typeof(Logger));
集装箱登记单(制图员);
容器。寄存器(()=>{
var期权=ob.期权;
返回新的GatewayDBContext(选项);
});
var host=builder.Build();
使用(主机)
{
host.Run();
}
}
专用静态IConfiguration配置{get;set;}
专用静态void配置服务(IServiceCollection服务)
{
fail: Host.Results[0]