错误“byte[]”未包含“ToList”的定义,并且找不到可接受第一个“byte[]”类型参数的扩展方法“ToList”(是否缺少 using 指令或程序集引用?)
开发环境为 vs2017 + win10 64位 +.net4.0
网上说 var enc = Encoding.Default; 改为 var enc = Encoding.UTF8; 无效!错误依然存在!
求高手指点一下
private string CalcHMACSHA256Hash(string plaintext, string salt)
{
string result = "";
var enc = Encoding.Default;
byte[]
baText2BeHashed = enc.GetBytes(plaintext),
baSalt = enc.GetBytes(salt);
System.Security.Cryptography.HMACSHA256 hasher = new HMACSHA256(baSalt);
byte[] baHashedText = hasher.ComputeHash(baText2BeHashed);
result = string.Join("", baHashedText.ToList().Select(b => b.ToString("x2")).ToArray());
return result;
}
我是对接微信支付的时候在demo里面遇到到同样的问题,与吧主的代码一致,using System.Linq;报错,无法引用,以至于byte[]不包含‘ToList’。找了半天才想到这问题,有两年没写c#,一只写php和小程序了。微信支付给出的项目是framework 2.0 ,我们平常开发用的是4.0.所以需要先升级一下才能用。
选中项目,右击选择属性,将目标框架的 .NET framework 2.0 改成 .NET framework 4。就可以了。
你得先右键项目,属性页面去把目标框架调高,我调到了.NET Framework 4.7.2 ,然后右键引用,管理Nuget包,把System.Linq安装好,然后就好了
怎么解决的
已解决