Xamarin,便携式多平台解决方案,便携式项目部分
对于MD5哈希,我创建了md5类。添加到项目参考PCLCrypto.dll。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PCLCrypto;
using static PCLCrypto.WinRTCrypto;
namespace WCHSBMobile
{
public static class md5
{
public static string GetMD5hash(string data)
{
//string result = data;
IHashAlgorithmProvider algoProv = PCLCrypto.WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Md5);
byte[] dataB = Encoding.UTF8.GetBytes(data);
byte[] dataHash = algoProv.HashData(dataB);
var hex = new StringBuilder(dataHash.Length * 2);
foreach (byte b in dataHash)
{
hex.AppendFormat("{0:x2}", b);
}
return hex.ToString();
//return result;
}
}
}
在这条线上的android上进行测试时,出现运行时错误IHashAlgorithmProvider algoProv = PCLCrypto.WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Md5);我得到错误
PCLCrypto.NotImplementedByReferenceAssemblyException:这是一个参考程序集,不包含实现。确保将PCLCrypto软件包安装到您的应用程序中,以便在运行时使用平台实现程序集。
我该怎么办?你能给我建议任何解决方案吗?
谢谢
最佳答案
我在Xamarin应用程序中遇到了这个问题。如dylan-s和thomas的评论中所建议,请尝试以下步骤:
卸载应用
确保将PCLCrypto Nuget软件包安装在Android项目以及可移植项目中。
关于xamarin - PCLCrypto.dll运行时错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38478851/