我是对接微信支付的时候在demo里面遇到到同样的问题,与吧主的代码一致,using System.Linq;报错,无法引用,以至于byte[]不包含‘ToList’。找了半天才想到这问题,有两年没写c#,一只写php和小程序了。微信支付给出的项目是framework 2.0 ,我们平常开发用的是4.0.所以需要先升级一下才能用。 选中项目,右击选择属性,将目标框架的 .NET framework 2.0 改成 .NET framework 4。就可以了。
官网下载的demo .NET C#版 “byte[]”未包含“ToList”的定义错误“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; }
2020-06-09