![](/img/trans.png)
[英]How can I write a signature on C# for a wrapped C++ method having double indirection on its arguments?
[英]How to get a unique id for a method based on its signature in c#?
无论如何,我可以使用基于其签名的反射为特定类中的每个方法获取一个uniqueId? 我知道GetHashCode方法,但是我想保证唯一性。
方法的Type.FullName + MemberInfo.Name +参数类型,任何较短的内容都不是唯一的。
如果您想将其范围限定为特定类型-不需要类型的FullName。 如果仅在运行时需要它-MemberInfo对象本身可能是最好的选择。
它必须有多独特? 什么尺寸?
如果仅使用逗号连接返回类型和每个参数类型,则您将拥有一个唯一标识此签名的字符串。 它也恰好对签名进行了完全编码,但这并不一定是不好的。
如果您想要更短的内容,可以:
使用System.Reflection命名空间:
http://msdn.microsoft.com/zh-CN/library/system.reflection.aspx
方法名称:
System.Reflection.MethodBase.GetCurrentMethod()。名称
方法类型:
System.Reflection.MethodBase.GetCurrentMethod()。DeclaringType
方法参数:
System.Reflection.MethodBase.GetCurrentMethod()。GetParameters()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.