diff --git a/Src/AsyncAwaitBestPractices.MVVM/AsyncAwaitBestPractices.MVVM.csproj b/Src/AsyncAwaitBestPractices.MVVM/AsyncAwaitBestPractices.MVVM.csproj
index 381d1b6..124fb6c 100644
--- a/Src/AsyncAwaitBestPractices.MVVM/AsyncAwaitBestPractices.MVVM.csproj
+++ b/Src/AsyncAwaitBestPractices.MVVM/AsyncAwaitBestPractices.MVVM.csproj
@@ -33,8 +33,9 @@
- Add `AsyncCommand<TExecute, TCanExecute>`
- Add `AsyncValueCommand<TExecute, TCanExecute>`
- Implement SourceLink
+- Support .NET 5
- 5.0.0
+ 5.0.1
https://github.com/brminnick/AsyncAwaitBestPractices
$(AssemblyName) ($(TargetFramework))
1.0.0.0
diff --git a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManagerTests/Tests_WeakEventManager_Delegate.cs b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManagerTests/Tests_WeakEventManager_Delegate.cs
index 5045ce5..949f88d 100644
--- a/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManagerTests/Tests_WeakEventManager_Delegate.cs
+++ b/Src/AsyncAwaitBestPractices.UnitTests/WeakEventManagerTests/Tests_WeakEventManager_Delegate.cs
@@ -8,7 +8,7 @@ class Tests_WeakEventManager_Delegate : BaseTest, INotifyPropertyChanged
{
readonly WeakEventManager _propertyChangedWeakEventManager = new WeakEventManager();
- public event PropertyChangedEventHandler PropertyChanged
+ public event PropertyChangedEventHandler? PropertyChanged
{
add => _propertyChangedWeakEventManager.AddEventHandler(value);
remove => _propertyChangedWeakEventManager.RemoveEventHandler(value);
@@ -21,10 +21,10 @@ public void WeakEventManagerDelegate_HandleEvent_ValidImplementation()
PropertyChanged += HandleDelegateTest;
bool didEventFire = false;
- void HandleDelegateTest(object sender, PropertyChangedEventArgs e)
+ void HandleDelegateTest(object? sender, PropertyChangedEventArgs e)
{
Assert.IsNotNull(sender);
- Assert.AreEqual(this.GetType(), sender.GetType());
+ Assert.AreEqual(this.GetType(), sender?.GetType());
Assert.IsNotNull(e);
@@ -46,7 +46,7 @@ public void WeakEventManagerDelegate_HandleEvent_NullSender()
PropertyChanged += HandleDelegateTest;
bool didEventFire = false;
- void HandleDelegateTest(object sender, PropertyChangedEventArgs e)
+ void HandleDelegateTest(object? sender, PropertyChangedEventArgs e)
{
Assert.IsNull(sender);
Assert.IsNotNull(e);
@@ -69,7 +69,7 @@ public void WeakEventManagerDelegate_HandleEvent_InvalidEventArgs()
PropertyChanged += HandleDelegateTest;
bool didEventFire = false;
- void HandleDelegateTest(object sender, PropertyChangedEventArgs e) => didEventFire = true;
+ void HandleDelegateTest(object? sender, PropertyChangedEventArgs e) => didEventFire = true;
//Act
@@ -86,10 +86,10 @@ public void WeakEventManagerDelegate_HandleEvent_NullEventArgs()
PropertyChanged += HandleDelegateTest;
bool didEventFire = false;
- void HandleDelegateTest(object sender, PropertyChangedEventArgs e)
+ void HandleDelegateTest(object? sender, PropertyChangedEventArgs e)
{
Assert.IsNotNull(sender);
- Assert.AreEqual(this.GetType(), sender.GetType());
+ Assert.AreEqual(this.GetType(), sender?.GetType());
Assert.IsNull(e);
@@ -113,7 +113,7 @@ public void WeakEventManagerDelegate_HandleEvent_InvalidHandleEventEventName()
PropertyChanged += HandleDelegateTest;
bool didEventFire = false;
- void HandleDelegateTest(object sender, PropertyChangedEventArgs e) => didEventFire = true;
+ void HandleDelegateTest(object? sender, PropertyChangedEventArgs e) => didEventFire = true;
//Act
_propertyChangedWeakEventManager.RaiseEvent(this, new PropertyChangedEventArgs("Test"), nameof(TestStringEvent));
@@ -149,7 +149,7 @@ public void WeakEventManagerDelegate_UnassignedEvent()
PropertyChanged += HandleDelegateTest;
PropertyChanged -= HandleDelegateTest;
- void HandleDelegateTest(object sender, PropertyChangedEventArgs e) => didEventFire = true;
+ void HandleDelegateTest(object? sender, PropertyChangedEventArgs e) => didEventFire = true;
//Act
#pragma warning disable CS8625 //Cannot convert null literal to non-nullable reference type
@@ -168,7 +168,7 @@ public void WeakEventManagerDelegate_UnassignedEventManager()
bool didEventFire = false;
PropertyChanged += HandleDelegateTest;
- void HandleDelegateTest(object sender, PropertyChangedEventArgs e) => didEventFire = true;
+ void HandleDelegateTest(object? sender, PropertyChangedEventArgs e) => didEventFire = true;
//Act
unassignedEventManager.RaiseEvent(null, null, nameof(PropertyChanged));
@@ -185,7 +185,7 @@ public void WeakEventManagerDelegate_HandleEvent_InvalidHandleEvent()
PropertyChanged += HandleDelegateTest;
bool didEventFire = false;
- void HandleDelegateTest(object sender, PropertyChangedEventArgs e) => didEventFire = true;
+ void HandleDelegateTest(object? sender, PropertyChangedEventArgs e) => didEventFire = true;
//Act
diff --git a/Src/AsyncAwaitBestPractices/AsyncAwaitBestPractices.csproj b/Src/AsyncAwaitBestPractices/AsyncAwaitBestPractices.csproj
index 5c1fa24..6ab8aff 100644
--- a/Src/AsyncAwaitBestPractices/AsyncAwaitBestPractices.csproj
+++ b/Src/AsyncAwaitBestPractices/AsyncAwaitBestPractices.csproj
@@ -32,8 +32,9 @@
New In This Release:
- `WeakEventManager` performance improvements by implementing `ValueTuple`
- Implement SourceLink
+- Support .NET 5
- 5.0.0
+ 5.0.1
https://github.com/brminnick/AsyncAwaitBestPractices
$(AssemblyName) ($(TargetFramework))
1.0.0.0
diff --git a/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.extensions.shared.cs b/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.extensions.shared.cs
index 069ea70..e604254 100644
--- a/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.extensions.shared.cs
+++ b/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.extensions.shared.cs
@@ -59,14 +59,14 @@ public partial class WeakEventManager
///
/// Handler
/// Event name
- public void AddEventHandler(Delegate handler, [CallerMemberName] string eventName = "") => AddEventHandler(in handler, in eventName);
+ public void AddEventHandler(Delegate? handler, [CallerMemberName] string eventName = "") => AddEventHandler(in handler, in eventName);
///
/// Removes the event handler.
///
/// Handler
/// Event name
- public void RemoveEventHandler(Delegate handler, [CallerMemberName] string eventName = "") => RemoveEventHandler(in handler, in eventName);
+ public void RemoveEventHandler(Delegate? handler, [CallerMemberName] string eventName = "") => RemoveEventHandler(in handler, in eventName);
///
/// Invokes the event EventHandler
diff --git a/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.shared.cs b/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.shared.cs
index 6a18a23..cce3c5c 100644
--- a/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.shared.cs
+++ b/Src/AsyncAwaitBestPractices/WeakEventManager/WeakEventManager.shared.cs
@@ -20,7 +20,7 @@ public partial class WeakEventManager
///
/// Handler
/// Event name
- public void AddEventHandler(in EventHandler handler, [CallerMemberName] in string eventName = "")
+ public void AddEventHandler(in EventHandler? handler, [CallerMemberName] in string eventName = "")
{
if (IsNullOrWhiteSpace(eventName))
throw new ArgumentNullException(nameof(eventName));
@@ -36,7 +36,7 @@ public void AddEventHandler(in EventHandler handler, [CallerMemberNa
///
/// Handler
/// Event name
- public void AddEventHandler(in Action action, [CallerMemberName] in string eventName = "")
+ public void AddEventHandler(in Action? action, [CallerMemberName] in string eventName = "")
{
if (IsNullOrWhiteSpace(eventName))
throw new ArgumentNullException(nameof(eventName));
@@ -52,7 +52,7 @@ public void AddEventHandler(in Action action, [CallerMemberName] in
///
/// Handler
/// Event name
- public void RemoveEventHandler(in EventHandler handler, [CallerMemberName] in string eventName = "")
+ public void RemoveEventHandler(in EventHandler? handler, [CallerMemberName] in string eventName = "")
{
if (IsNullOrWhiteSpace(eventName))
throw new ArgumentNullException(nameof(eventName));
@@ -68,7 +68,7 @@ public void RemoveEventHandler(in EventHandler handler, [CallerMembe
///
/// Handler
/// Event name
- public void RemoveEventHandler(in Action action, [CallerMemberName] in string eventName = "")
+ public void RemoveEventHandler(in Action? action, [CallerMemberName] in string eventName = "")
{
if (IsNullOrWhiteSpace(eventName))
throw new ArgumentNullException(nameof(eventName));
@@ -109,7 +109,7 @@ public partial class WeakEventManager
///
/// Handler
/// Event name
- public void AddEventHandler(in Delegate handler, [CallerMemberName] in string eventName = "")
+ public void AddEventHandler(in Delegate? handler, [CallerMemberName] in string eventName = "")
{
if (IsNullOrWhiteSpace(eventName))
throw new ArgumentNullException(nameof(eventName));
@@ -125,7 +125,7 @@ public void AddEventHandler(in Delegate handler, [CallerMemberName] in string ev
///
/// Handler
/// Event name
- public void RemoveEventHandler(in Delegate handler, [CallerMemberName] in string eventName = "")
+ public void RemoveEventHandler(in Delegate? handler, [CallerMemberName] in string eventName = "")
{
if (IsNullOrWhiteSpace(eventName))
throw new ArgumentNullException(nameof(eventName));