diff --git a/AyCode.Core/AyCode.Core.csproj b/AyCode.Core/AyCode.Core.csproj
index b703459..3a34c73 100644
--- a/AyCode.Core/AyCode.Core.csproj
+++ b/AyCode.Core/AyCode.Core.csproj
@@ -10,10 +10,6 @@
-
-
-
-
diff --git a/AyCode.Core/Extensions/ExceptionExtensions.cs b/AyCode.Core/Extensions/ExceptionExtensions.cs
new file mode 100644
index 0000000..1269343
--- /dev/null
+++ b/AyCode.Core/Extensions/ExceptionExtensions.cs
@@ -0,0 +1,26 @@
+using AyCode.Utils.Extensions;
+
+namespace AyCode.Core.Extensions;
+
+public static class ExceptionExtensions
+{
+ public static void GetCategoryAndMemberNameFromStackTraceString(this Exception? exception, out string? memberName, out string? categoryName)
+ {
+ categoryName = null;
+ memberName = null;
+
+ if (exception == null) return;
+
+ var stackTraceString = exception.StackTrace ?? exception.InnerException?.StackTrace;
+ if (stackTraceString.IsNullOrWhiteSpace()) return;
+
+ var stackSplit = stackTraceString.Split(" in ");
+ if (stackSplit.Length <= 0) return;
+
+ stackSplit = stackSplit[0].Split('.');
+ if (stackSplit.Length <= 1) return;
+
+ memberName = stackSplit[^1]; //new StackTrace(exception).GetFrame(0)?.GetMethod()?.Name;
+ categoryName = stackSplit[^2]; //exception.Source
+ }
+}
\ No newline at end of file