无论如何,我可以使用基于其签名的反射为特定类中的每个方法获取uniqueId吗?我知道GetHashCode方法,但我希望保证唯一性。
答案 0 :(得分:6)
Type.FullName + MemberInfo.Name +方法的参数类型,任何更短的都不是唯一的。
如果要将其范围限定为特定类型 - 不需要类型的FullName。如果只在运行时需要它 - MemberInfo对象本身可能是最好的。
答案 1 :(得分:3)
它有多独特?什么尺寸?
如果只使用逗号连接返回类型和每个参数类型,则会有一个唯一标识此签名的字符串。它也恰好对签名进行了完全编码,但这并不一定很糟糕。
如果你想要更短的东西,你可以:
答案 2 :(得分:1)
使用System.Reflection命名空间:
http://msdn.microsoft.com/en-us/library/system.reflection.aspx
方法名称:
System.Reflection.MethodBase.GetCurrentMethod()。名称
方法类型:
System.Reflection.MethodBase.GetCurrentMethod()。DeclaringType
方法参数:
System.Reflection.MethodBase.GetCurrentMethod()。GetParameters()。