From 1bcf7ec29c0bdcc0dc0224300b57a03c93463014 Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Thu, 23 Nov 2017 22:34:16 +0100 Subject: [PATCH] Fix ASP.NET Core breaking changes --- Frameworks/MQTTnet.AspnetCore/MqttHostedServer.cs | 10 ++++------ .../ServiceCollectionExtensions.cs | 12 +++++++++--- Tests/MQTTnet.TestApp.AspNetCore2/Startup.cs | 4 +++- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Frameworks/MQTTnet.AspnetCore/MqttHostedServer.cs b/Frameworks/MQTTnet.AspnetCore/MqttHostedServer.cs index e21b8fe5..a8061052 100644 --- a/Frameworks/MQTTnet.AspnetCore/MqttHostedServer.cs +++ b/Frameworks/MQTTnet.AspnetCore/MqttHostedServer.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Hosting; @@ -12,12 +13,9 @@ namespace MQTTnet.AspNetCore { private readonly MqttServerOptions _options; - public MqttHostedServer( - MqttServerOptions options, - IEnumerable adapters, - IMqttNetLogger logger) : base(adapters, logger) + public MqttHostedServer(MqttServerOptions options, IEnumerable adapters, IMqttNetLogger logger) : base(adapters, logger) { - _options = options; + _options = options ?? throw new ArgumentNullException(nameof(options)); } public Task StartAsync(CancellationToken cancellationToken) diff --git a/Frameworks/MQTTnet.AspnetCore/ServiceCollectionExtensions.cs b/Frameworks/MQTTnet.AspnetCore/ServiceCollectionExtensions.cs index f39b1cf8..236d44d1 100644 --- a/Frameworks/MQTTnet.AspnetCore/ServiceCollectionExtensions.cs +++ b/Frameworks/MQTTnet.AspnetCore/ServiceCollectionExtensions.cs @@ -1,17 +1,23 @@ -using Microsoft.Extensions.DependencyInjection; +using System; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using MQTTnet.Core.Adapter; +using MQTTnet.Core.Diagnostics; using MQTTnet.Core.Server; namespace MQTTnet.AspNetCore { public static class ServiceCollectionExtensions { - public static IServiceCollection AddHostedMqttServer(this IServiceCollection services) + public static IServiceCollection AddHostedMqttServer(this IServiceCollection services, MqttServerOptions options) { + if (options == null) throw new ArgumentNullException(nameof(options)); + + services.AddSingleton(options); + services.AddSingleton(new MqttNetLogger()); + services.AddSingleton(); services.AddSingleton(s => s.GetService()); services.AddSingleton(s => s.GetService()); - services.AddSingleton(); services.AddSingleton(); services.AddSingleton(s => s.GetService()); diff --git a/Tests/MQTTnet.TestApp.AspNetCore2/Startup.cs b/Tests/MQTTnet.TestApp.AspNetCore2/Startup.cs index 55c57a18..5c9b32ed 100644 --- a/Tests/MQTTnet.TestApp.AspNetCore2/Startup.cs +++ b/Tests/MQTTnet.TestApp.AspNetCore2/Startup.cs @@ -7,6 +7,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; using MQTTnet.AspNetCore; using MQTTnet.Core; +using MQTTnet.Core.Server; namespace MQTTnet.TestApp.AspNetCore2 { @@ -16,7 +17,8 @@ namespace MQTTnet.TestApp.AspNetCore2 public void ConfigureServices(IServiceCollection services) { - services.AddHostedMqttServer(); + var mqttServerOptions = new MqttServerOptionsBuilder().Build(); + services.AddHostedMqttServer(mqttServerOptions); } // In class _Startup_ of the ASP.NET Core 2.0 project.