NetworkManager: Use MemberNotNull attribute

Added in .NET 5, this attribute allows for the compiler to recognize
that InitializeLan (and by extension, UpdateSettings) will initialize
the specified fields.
This commit is contained in:
Alexander Gramiak 2024-10-05 14:54:26 -06:00
parent b5d89a67e8
commit 76ac1e6143

View File

@ -81,7 +81,6 @@ public class NetworkManager : INetworkManager, IDisposable
/// <param name="configurationManager">The <see cref="IConfigurationManager"/> instance.</param>
/// <param name="startupConfig">The <see cref="IConfiguration"/> instance holding startup parameters.</param>
/// <param name="logger">Logger to use for messages.</param>
#pragma warning disable CS8618 // Non-nullable field is uninitialized. : Values are set in UpdateSettings function. Compiler doesn't yet recognise this.
public NetworkManager(IConfigurationManager configurationManager, IConfiguration startupConfig, ILogger<NetworkManager> logger)
{
ArgumentNullException.ThrowIfNull(logger);
@ -109,7 +108,6 @@ public class NetworkManager : INetworkManager, IDisposable
_configurationManager.NamedConfigurationUpdated += ConfigurationUpdated;
}
#pragma warning restore CS8618 // Non-nullable field is uninitialized.
/// <summary>
/// Event triggered on network changes.
@ -312,6 +310,7 @@ public class NetworkManager : INetworkManager, IDisposable
/// <summary>
/// Initializes internal LAN cache.
/// </summary>
[MemberNotNull(nameof(_lanSubnets), nameof(_excludedSubnets))]
private void InitializeLan(NetworkConfiguration config)
{
lock (_initLock)
@ -591,6 +590,7 @@ public class NetworkManager : INetworkManager, IDisposable
/// Reloads all settings and re-Initializes the instance.
/// </summary>
/// <param name="configuration">The <see cref="NetworkConfiguration"/> to use.</param>
[MemberNotNull(nameof(_lanSubnets), nameof(_excludedSubnets))]
public void UpdateSettings(object configuration)
{
ArgumentNullException.ThrowIfNull(configuration);