From 6fb290a0ab152ce0f218058e4691e3071d4db1ac Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Thu, 19 Jul 2018 11:35:23 -0400 Subject: [PATCH] feat: Cross-platform extension method for getting MethodInfo from a delegate --- .../Extensions/EventHandlerExtensions.cs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ICD.Common.Utils/Extensions/EventHandlerExtensions.cs b/ICD.Common.Utils/Extensions/EventHandlerExtensions.cs index 6e222db..824a886 100644 --- a/ICD.Common.Utils/Extensions/EventHandlerExtensions.cs +++ b/ICD.Common.Utils/Extensions/EventHandlerExtensions.cs @@ -1,4 +1,9 @@ using System; +#if SIMPLSHARP +using Crestron.SimplSharp.Reflection; +#else +using System.Reflection; +#endif namespace ICD.Common.Utils.Extensions { @@ -34,5 +39,22 @@ namespace ICD.Common.Utils.Extensions if (extends != null) extends(sender, args); } + + /// + /// Cross-platform shim for getting MethodInfo for the delegate. + /// + /// + /// + public static MethodInfo GetMethodInfo(this Delegate extends) + { + if (extends == null) + throw new ArgumentNullException("extends"); + +#if SIMPLSHARP + return extends.GetMethod(); +#else + return extends.Method; +#endif + } } }