public static uint GetMethodId(this MethodInfo methodInfo)
        {
            var stringValue = methodInfo.Name + GetInvariantFullName(methodInfo.ReturnParameter?.ParameterType) +
                              string.Join("",
                                          methodInfo.GetParameters().Select(x =>
                                                                            x.Position.ToString() + GetInvariantFullName(x.ParameterType)));

            return(MurmurHash.Hash(stringValue));
        }
        public static uint GetEventId(this EventInfo eventInfo)
        {
            var stringBuilder = new StringBuilder();

            stringBuilder.Append(eventInfo.Name);
            stringBuilder.Append(eventInfo.EventHandlerType.Name);
            stringBuilder.Append(eventInfo.EventHandlerType.Namespace);

            foreach (var genericTypeArgument in eventInfo.EventHandlerType.GenericTypeArguments)
            {
                stringBuilder.Append(genericTypeArgument);
            }
            return(MurmurHash.Hash(stringBuilder.ToString()));
        }