18 lines
682 B
C#
18 lines
682 B
C#
using System;
|
|
|
|
namespace Syntriax.Engine.Core;
|
|
|
|
public static class DelegateHelpers
|
|
{
|
|
public static void InvokeSafe(this Delegate @delegate, params object?[] args)
|
|
{
|
|
foreach (Delegate invocation in @delegate.GetInvocationList())
|
|
try { invocation.DynamicInvoke(args); }
|
|
catch (Exception exception)
|
|
{
|
|
string methodCallRepresentation = $"{invocation.Method.DeclaringType?.FullName}.{invocation.Method.Name}({string.Join(", ", args)})";
|
|
Console.WriteLine($"Unexpected exception on invocation of method {methodCallRepresentation}:{Environment.NewLine}{exception.InnerException}");
|
|
}
|
|
}
|
|
}
|