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())); }