fix: protect callbacks against failures (#11)

Co-authored-by: Mitch Freed <mitch@wilqo.com>
diff --git a/Casbin.Watcher.Redis/Casbin.Watcher.Redis.csproj b/Casbin.Watcher.Redis/Casbin.Watcher.Redis.csproj
index 9205147..ed5b504 100644
--- a/Casbin.Watcher.Redis/Casbin.Watcher.Redis.csproj
+++ b/Casbin.Watcher.Redis/Casbin.Watcher.Redis.csproj
@@ -23,7 +23,7 @@
   <ItemGroup>
     <PackageReference Include="Casbin.NET" Version="2.1.1" />
     <PackageReference Include="StackExchange.Redis" Version="2.7.17" />
-    <PackageReference Include="System.Text.Json" Version="8.0.1" />
+    <PackageReference Include="System.Text.Json" Version="8.0.1" Condition="'$(TargetFramework)'=='netstandard2.1'" />
   </ItemGroup>
   
   <ItemGroup>
diff --git a/Casbin.Watcher.Redis/RedisWatcher.cs b/Casbin.Watcher.Redis/RedisWatcher.cs
index bd3e113..92361bd 100644
--- a/Casbin.Watcher.Redis/RedisWatcher.cs
+++ b/Casbin.Watcher.Redis/RedisWatcher.cs
@@ -148,14 +148,18 @@
             var isSelf = message.Id == Id;
             if (!(isSelf && _options.IgnoreSelf))
             {
-                if (_callbackWithMessage != null)
+                try
                 {
-                    _callbackWithMessage.Invoke(message);
+                    if (_callbackWithMessage != null)
+                    {
+                        _callbackWithMessage.Invoke(message);
+                    }
+                    else
+                    {
+                        _callback?.Invoke();
+                    }
                 }
-                else
-                {
-                    _callback?.Invoke();
-                }
+                catch {}
             }
         });
     }
@@ -170,14 +174,18 @@
             var isSelf = message.Id == Id;
             if (!(isSelf && _options.IgnoreSelf))
             {
-                if (_asyncCallbackWithMessage != null)
+                try
                 {
-                    _asyncCallbackWithMessage.Invoke(message);
+                    if (_asyncCallbackWithMessage != null)
+                    {
+                        _asyncCallbackWithMessage.Invoke(message);
+                    }
+                    else
+                    {
+                        _asyncCallback?.Invoke();
+                    }
                 }
-                else
-                {
-                    _asyncCallback?.Invoke();
-                }
+                catch {}
             }
         });
     }