Кто-нибудь знает, как добраться до услуги, с события, в другой услуге? (приложение razor page)
Когда я это делаю, я получаю сообщение «Невозможно получить доступ к удаленному объекту».
Добавление служб в Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddScoped<IDataService, DataService>();
services.AddScoped<IMqttService, MqttService>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IMqttService mqttService)
{
,,,
mqttService.SubscribeEvents();
,,,
}
In DataService.cs
private readonly DbContext _context;
public DataService(DbContext context)
{
_context = context;
}
In MqttService.cs
public static IDataService DataService { get; set; }
public MqttService(IDataService dataService)
{
DataService = dataService;
}
public void SubscribeEvents()
{
,,,
client.MqttMsgPublishReceived += client_MqttMsgPublishReceived;
,,,
}
public void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
// Here comes the "System.ObjectDisposedException: 'Cannot access a disposed object." when I get an event
DataService.SaveMessage(Encoding.Default.GetString(e.Message));
}
Что я делаю не так?
Другое дело. Как я смогу получить доступ к этим службам из метода в библиотечном проекте?