diff --git a/ICD.Common.Utils/ReflectionUtils.cs b/ICD.Common.Utils/ReflectionUtils.cs
index 1260bb6..d21b9c9 100644
--- a/ICD.Common.Utils/ReflectionUtils.cs
+++ b/ICD.Common.Utils/ReflectionUtils.cs
@@ -414,5 +414,26 @@ namespace ICD.Common.Utils
throw new InvalidCastException(message, e);
}
}
+
+ ///
+ /// Subscribes to the event on the given instance using the handler and callback method.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static Delegate SubscribeEvent(object instance, EventInfo eventInfo, object handler, MethodInfo callback)
+ {
+ if (eventInfo == null)
+ throw new ArgumentNullException("eventInfo");
+
+ if (callback == null)
+ throw new ArgumentNullException("callback");
+
+ Delegate output = CreateDelegate(eventInfo.EventHandlerType, handler, callback);
+ eventInfo.AddEventHandler(instance, output);
+ return output;
+ }
}
}