我需要为项目中的任何唯一方法调用生成'hash'。例如,我有方法string GetSomeString(int someInt)
。所以,在这些情况下我需要不同的哈希值:
string GetSomeString(1) -- key 1
string GetSomeString(2) -- key 2
string GetSomeString(3) -- key 3
如何生成这种哈希?
UPD: 我想通过一些唯一的哈希为每个方法调用记录任何方法执行。像这样:
public delegate T HelperFactoryMethod<T>();
public static LogMethodExecution<T>(HelperFactoryMethod<T> factoryMethod) where T: class
{
string key = GetHashString(factoryMethod);
StoreToDatabase(key);
...
}
GetHashString()的结果示例必须如下:
答案 0 :(得分:2)
您可以使用哈希函数为所有参数值生成唯一键。 例如:
public string GetSomeString(int someInt)
{
MD5CryptoServiceProvider cryptoServiceProvider = new MD5CryptoServiceProvider();
byte[] data = Encoding.ASCII.GetBytes(String.Format("{0}{1}", "methodName", someInt));
data = cryptoServiceProvider.ComputeHash(data);
return Convert.ToString(data);
}
每个唯一的'方法名称'和参数都将返回一个唯一键
答案 1 :(得分:1)
也许我没有正确理解你的问题,但为什么你不使用与hash相同的someInt?