Tag: portable class library

如何列出PCL中的所有已加载程序集(可移植类库)

在.NET中很容易获得所有已加载程序集的列表: AppDomain.CurrentDomain.GetAssemblies() 但我找不到在PCL(可移植类库)代码中执行此操作的方法? 有什么建议?

RuntimeReflectionExtensions.GetRuntimeMethod无法按预期工作

有没有人知道为什么调用GetRuntimeMethod为以下情况返回null? _toListMethod = typeof(Enumerable).GetRuntimeMethod(“ToList”, new Type[] { typeof(IEnumerable) }); 它应该像它一样工作: _castMethod = typeof(Enumerable).GetRuntimeMethod(“Cast”, new Type[] { typeof(IEnumerable) }); 我尝试通过运行以下代码来调试它: var bah = typeof (Enumerable).GetRuntimeMethods().Where(m => m.Name.Contains(“ToList”)); var derp = bah.First().GetParameters(); 令我惊讶的是,第一行返回一个集合,其中包含我想要获取的MethodInfo,第二行确认预期的参数类型是IEnumerable 。 两个方法签名,Cast和ToList是相似的,我看不出为什么获取ToList的MethodInfo会失败的任何原因。 此代码在可移植类库上运行,TargetFrameworkProfile设置为Profile78。 谢谢! 更新:在我有一个很好的解决方案之前,有一个丑陋的解决方法对我有用: _toListMethod = typeof(Enumerable).GetRuntimeMethods().First(m => m.Name.Contains(“ToList”));

System.Security.Cryptography与PCLCrypto

我们正在努力在我们的系统中挖掘大量共享function并将其移植到PCL库中。 我在使用PCLCrypto时遇到了问题。 我正在我们的数据库中获取一些现有数据,并尝试使用相同的算法对其进行解密。 我得到了值,但最后有16个额外的字节只是垃圾。 请参阅下面的代码: 使用System.Security.Cryptography的旧算法 public static string SymmetricEncrypt(this string plaintext, string key, SymmetricAlgorithm algorithm) { byte[] keyBuffer = Convert.FromBase64String(key.Hash(HashAlgorithm.MD5)); byte[] plainTextBuffer = Encoding.UTF8.GetBytes(plaintext); var symmetricAlgorithm = new AesCryptoServiceProvider(); symmetricAlgorithm.Key = keyBuffer; symmetricAlgorithm.Mode = CipherMode.ECB; var encryptor = symmetricAlgorithm.CreateEncryptor(); byte[] cipherBuffer = encryptor.TransformFinalBlock(plainTextBuffer, 0, plainTextBuffer.Length); symmetricAlgorithm.Clear(); return Convert.ToBase64String(cipherBuffer); } public static string SymmetricDecrypt(this string […]

.NET可移植类库中.ToShortDateString发生了什么

我想知道为什么.NET可移植类库中没有.ToShortDateString 。 我有两个使用相同代码的项目(Silverlight和常规.NET类库),代码涉及在DateTime对象上调用.ToShortDateString() 。 为了重用相同的代码而不是在两个地方复制它,我创建了一个可移植的类库,因此它可以由Silverlight和.NET类库导入。 不幸的是,在使用类库时,它看起来并不像.ToShortDateString() 。 我可以在可移植类库方法中接受一个字符串参数,并从silverlight和类库项目中传递.ToShortDateString()值,但我想知道为什么这个方法对于可移植库来说不是本机的。 这是文化问题吗?

如何修复Xamarin.forms System.IO.FileNotFoundException:找不到文件

我正在使用xamrin.forms ,我正在尝试访问文件并阅读它。 我有lastusername.txt作为文本文件,我将它的构建操作设置为“内容”,实际上我正在尝试读取文件如下: var filename = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), “lastusername.txt”); if (filename != null) return System.IO.File.ReadAllText(filename);//error occurred here else return “”; 我收到以下错误: System.IO.FileNotFoundException:找不到文件

为什么我的PCL不能使用System.Runtime?

我有一个针对以下平台的PCL: .NET Framework 4.5 Windows 8 Windows Phone 8.1 我需要添加对System.Runtime的引用,因为我想使用另一个依赖它的包。 从我所看到的, 版本4.0.0似乎包括上面提到的目标平台。 但是,当我尝试通过NuGet安装它时,我得到了这个堆栈跟踪: PM> Install-Package System.Runtime -Version 4.0.0 # … Install failed. Rolling back… Package ‘System.Runtime 4.0.0’ does not exist in project ‘PclDummy’ Package ‘System.Runtime 4.0.0’ does not exist in folder ‘C:\Users\James\Documents\Visual Studio 2015\Projects\PclDummy\packages’ Install-Package : Could not install package ‘System.Runtime 4.0.0’. You are trying […]

可移植类库 – 类型’MarshalByRefObject’的引用声称它在’mscorlib’中定义,但无法找到

我有一个普通的类库,其函数可以将字节数组转换为图像。 现在我已经删除了该类库并创建了一个具有相同名称的可移植类库,现在代码似乎不再起作用并且在“FromStream”函数上给出了一个错误: 引用类型’MarshalByRefObject’声称它在’mscorlib’中定义,但无法找到 using System; using System.Drawing; using System.IO; namespace App.Converters { public static class Converter { public static Image ToImage(this byte[] byteArray) { try { return Image.FromStream(new MemoryStream(byteArray)); } catch { throw new FormatException(“Data is not an image”); } } } } 我的项目定位于: .NET Framework 4.5 ASP.NET Core 1.0 Windows 8 Windows Phone 8.1 […]

使用Restsharp PCL上传到Dropbox

我正在尝试使用RestSharp.Portable使用PCL将文件上传到Dropbox。 我的代码是 public async Task UploadFile(Stream fileStream, string fileName) { var client = new RestClient(“https://api-content.dropbox.com”); client.ClearEncodings(); client.AddEncoding(“gzip”, new GzipEncoding()); var request = new RestRequest(“1/files/dropbox/Apps/FileBolt”, HttpMethod.Post); request.AddHeader(“Authorization”, string.Format(“Bearer {0}”, Token)); request.AddParameter(“file”, fileName); byte[] bytes = null; long numBytes = fileStream.Length; using (var br = new BinaryReader(fileStream)) { bytes = br.ReadBytes((int) numBytes); } request.AddFile(new FileParameter { ContentLength […]

无效的il代码System.IO.Compression.ZipFile.OpenRead()方法体为空

我正在使用Xamarin和MVVMCross实现一个Android应用程序。 在我的PCL中,我有一个ZipUtility类和以下方法: public NoDataResponse UnCompressZipFile(string path, string filename) { NoDataResponse response = new NoDataResponse(); StringBuilder sb = new StringBuilder(); sb.AppendLine(string.Format(“\r\nUnzipping ‘{0}’ in ‘{1}’ folder…”, filename, path)); try { using (ZipArchive archive = ZipFile.Open(filename, ZipArchiveMode.Read)) { foreach (System.IO.Compression.ZipArchiveEntry entry in archive.Entries) { if (entry.FullName.EndsWith(“.txt”, StringComparison.OrdinalIgnoreCase)) { System.IO.Compression.ZipFile.ExtractToDirectory(filename, path); break; } } } response.IsCallSuccessful = true; sb.AppendLine(string.Format(“\r\nFinished […]

可移植类库,XmlAnyElementAttribute

在可移植类库中 ,我有一个包含具有XmlAnyElement属性的成员的类。 public partial class VariableWebServiceResponse { private List anyField; public VariableWebServiceResponse () { this.anyField = new List(); } [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] public List Any { get { return this.anyField; } set { this.anyField = value; } } } 这种类在.NET 4.0中完美运行,因此我的代码如下: private T Deserialize(VariableWebServiceResponse response) { var name = typeof(T).Name; var element = response.Any.SingleOrDefault(x => x.Name == […]