C#基础温习(2):温习控制台程序(二)
2013-04-12 11:27
513 查看
前面文章我介绍了有关控制台应用程序的一些理论内容,这一节我用来写一些实例,知道了原理不练是不行的,下面我分写一些实例供大家练习参考。
运行结果:
Note:1.在这个demo中我们需要注意JavaScriptSerializer是在System.Web.Script.Serialization命名空间下,使用前需要先添加引用到我们的项目,然后我们才可以直接使用。而System.Web.Script.Serialization命名空间在引用dll的时候应该引用System.Web.Extensions.dll;我用的是Visual Studio 2010可是引用后报错了,如下:
具体是什么问题请参考:.NET Framework 4 与 .NET Framework 4 Client Profile,解决了以后我们的运行结果如上。
2.可以使用 ScriptIgnore属性标记不序列化公共属性或公共字段。
把我们的实体类改成如下格式:
结果:
Note:运行前需要添加 System.Runtime.Serialization.dll和System.ServiceModel.dll,System.ServiceModel.Web.dll这样才可以正常运行。
代码需要多多练习我们才能熟悉,因此写了几个简单的实例,希望朋友们能写更多的实例去熟练语言。
实例1:读取输入数据并实现简单的加减乘除
直接上代码:下面是运行效果图:实例2:C#实现数据序列化(json格式)
代码: using System; using System.Web.Script.Serialization; namespace Serializer { class Program { static void Main(string[] args) { Person person=new Person(); person.Name = "木杉"; person.Id = "1"; JavaScriptSerializer serializer=new JavaScriptSerializer(); string strSerializer = serializer.Serialize(person); Console.WriteLine("person序列化成json格式的结果是:"); Console.WriteLine(strSerializer); Console.WriteLine("strSerializer反序列化的结果是:"); Person dePerson = serializer.Deserialize<Person>(strSerializer); Console.WriteLine(dePerson.ToString()); Console.ReadKey(); } } internal class Person { public string Id { set; get; } public string Name { set; get; } public override string ToString() { return "反序列化后成为对象,然后直接转化现在的呈现形式:Name=" +this.Name+ "Id=" + this.Id; } } }
运行结果:
Note:1.在这个demo中我们需要注意JavaScriptSerializer是在System.Web.Script.Serialization命名空间下,使用前需要先添加引用到我们的项目,然后我们才可以直接使用。而System.Web.Script.Serialization命名空间在引用dll的时候应该引用System.Web.Extensions.dll;我用的是Visual Studio 2010可是引用后报错了,如下:
具体是什么问题请参考:.NET Framework 4 与 .NET Framework 4 Client Profile,解决了以后我们的运行结果如上。
2.可以使用 ScriptIgnore属性标记不序列化公共属性或公共字段。
把我们的实体类改成如下格式:
public string Id { set] 运行结果变成: note:如果想了解Person类的修饰符,请参考:详解C#防访问修饰符:public,private,protected,internal实例3:另一种方式C#实现数据序列化(json格式)
using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.Text; namespace Json { class Program { static void Main(string[] args) { Person person=new Person(); person.Id = "1"; person.Name = "木杉"; DataContractJsonSerializer json=new DataContractJsonSerializer(person.GetType()); string strJson = string.Empty; using (MemoryStream stream=new MemoryStream()) { json.WriteObject(stream,person); strJson = Encoding.UTF8.GetString(stream.ToArray()); } Console.WriteLine("person序列化后的结果是:"); Console.WriteLine(strJson); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person)); Person p = (Person)serializer.ReadObject(ms); } Console.WriteLine("strJson反序列化后的结果是:"); Console.WriteLine(person.ToString()); Console.ReadKey(); } } [DataContract] internal class Person { [DataMember(Name = "id")] public string Id { set; get; } [DataMember(Name = "name")] public string Name { set; get; } public override string ToString() { return "反序列化后成为对象,然后直接转化现在的呈现形式:Name=" + this.Name + "Id=" + this.Id; } } }
结果:
Note:运行前需要添加 System.Runtime.Serialization.dll和System.ServiceModel.dll,System.ServiceModel.Web.dll这样才可以正常运行。
代码需要多多练习我们才能熟悉,因此写了几个简单的实例,希望朋友们能写更多的实例去熟练语言。
相关文章推荐
- C#基础温习(1):温习控制台程序(一)
- c# winform 控制台基础程序,冒泡排序法
- C#基础-关于用json给控制台程序传值的坑
- C#控制台基础 VS2017中为控制台程序设置启动参数(string[] args)
- c#中重定向windows控制台程序的输出信息
- C#到exe程序到PHP获得返回值基础测试
- Unity编辑器拓展【C#脚本程序基础】
- C#控制台基础 获取当前调试的exe的绝对路径 Assembly.GetExecutingAssembly().Location
- C# 控制台程序 托盘图标 事件响应
- C#第一天(2) 简单的控制台程序
- C# 控制台程序 输出Unicode字符
- C# 在线培训之零基础入门 01:开篇及C#程序、解决方案的结构
- c#基础加强版之方法控制流复习-3控制台打印密码
- 第一个C#程序—C#基础回顾
- C#控制台基础 静态类不能被继承的
- c#基础一些问题:强制转换 ,控制台获取ascii码,
- 9 在C#控制台程序(console)中让用户输入
- #Memcached系列#(5)使用.NET memcached client library访问Memcached的一个C#控制台程序
- JavaSE基础 awt Frame 点击红叉后,在控制台输出提示信息并关闭程序
- C#基础之------控制台进程