C# .net core 使用JsonConvert替代JavaScriptSerializer

.net core 中不存在System.Runtime.Serialization.Json与System.Web.Script.Serialization这两个namespace,因此也就不存在JavaScriptSerializer,所以在移植项目时,可以使用Newtonsoft.Json中的JsonConvert来替代。 代码: //.net framework下 //JavaScriptSerializer serializer = new JavaScriptSerializer(); //var res = serializer.Serialize(YourObject); //.net core 下使用Newtonsoft.Json var res = JsonConvert.SerializeObject(YourObject);

Read More

C# .net core System.Xml.Serialization 需使用包 System.Xml.XmlSerializer补齐属性

.net core 也是够奇葩的,去掉了原先许多using System.Xml.Serialization中的接口又以打包的方式提供真没话讲了。 代码: // [XmlRoot(“DeleteResult”)]和[XmlElement(“Deleted”)],.net core中引用`System.Xml.Serialization`是没有提供的这种方法的,你需要安装依赖包System.Xml.XmlSerializer就可以了。 [XmlRoot(“DeleteResult”)] public class DeleteObjectsResult : GenericResult { private DeletedObject[] _keys; [XmlElement(“Deleted”)] public DeletedObject[] Keys { get { if (EncodingType == null) return _keys; bool isUrlEncoding = EncodingType.ToLowerInvariant().Equals(HttpUtils.UrlEncodingType); … “C# .net core System.Xml.Serialization 需使用包 System.Xml.XmlSerializer补齐属性”

Read More

C# .net core StreamReader读文件流改为FileStream

见Stackoverflow的提问. 原先在NET Framework下,StreamReader中提供重载的方式直接读取文件流.但是在.net core中已经取消了该重载方法,为了移植到.net core只需添加一行代码即可. string fileName = “xxxx”; … //原来只用这一句 //StreamReader mysr = new StreamReader(fileName, Encoding.UTF8); //现在需要添加FileStream. var sw = new FileStream(fileName, FileMode.Open); StreamReader mysr = new StreamReader(sw); …

Read More

C# .net core 使用NameValueCollection类

微软更新了.net core的一些引用规则,详见GitHub的Issue. 其中包含了原来的NameSpace: – System.Collections.NonGeneric – System.Threading.Overlapped – System.Collections.Specialized – System.Xml.XmlDocument 因此原来只需using 引入的,而现在需要变成安装依赖包的方式了。 VS2017打开程序包管理器控制台,安装Install-Package System.Collections.Specialized即可安装到项目文件.csproj中,使用NameValueCollection便不会提示错误。

Read More