问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.ServiceModel;usingSystem.ServiceModel.Web;usingSystem.Runtime.Serialization.Json;usingSystem.Runtime.Serialization;usingSystem.Runtime.Serialization.Formatters;usingSystem.IO;namespacejson{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){///Samplecodeusingtheabovehelpermethods///toserializeanddeserializethePersonobjectPersonmyPerson=newPerson("Chris","Pietschmann");//Serializestringjson=JSONHelper.Serialize<Person>(myPerson);textBox1.Text=json;//Deserialize//myPerson=JSONHelper.Deserialize<Person>(json);}}publicclassJSONHelper{publicstaticstringSerialize<T>(Tobj){System.Runtime.Serialization.Json.DataContractJsonSerializerserializer=newSystem.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());MemoryStreamms=newMemoryStream();serializer.WriteObject(ms,obj);stringretVal=Encoding.Default.GetString(ms.ToArray());returnretVal;}publicstaticTDeserialize<T>(stringjson){Tobj=Activator.CreateInstance<T>();MemoryStreamms=newMemoryStream(Encoding.Unicode.GetBytes(json));System.Runtime.Serialization.Json.DataContractJsonSerializerserializer=newSystem.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());obj=(T)serializer.ReadObject(ms);ms.Close();returnobj;}}[DataContract]publicclassPerson{publicPerson(){}publicPerson(stringfirstname,stringlastname){this.FirstName=firstname;this.LastName=lastname;}[DataMember]publicstringFirstName{get;set;}[DataMember]publicstringLastName{get;set;}}}
错误1找不到类型或命名空间名称“DataContractAttribute”(是否缺少using指令或程序集引用?)E:c#练习项目9.12.02jsonjsonForm1.cs636json总是提示,这个错误,就是这里[DataContract],该引用的我都引用了啊。怎么还是不行呢
解决方案
解决方案二:
DataContractAttribute这个东西在哪个命名空间里,如果你确定都引用了就加个完全限定试试。
解决方案三:
我也不清楚啊!net3.5里的,专门序列化json用的!
解决方案四:
你的项目里有没有引用System.Runtime.Serialization.dll?都不行的话就写成[DataContractAttribute],就是不要省略Attribute
解决方案五:
usingSystem.Runtime.Serialization;DataContractAttribute类
解决方案六:
System.Runtime.Serialization.dll是否存在
解决方案七:
问题已自行解决,还是要感谢大家帮助!散分!
解决方案八:
引用6楼mylove__china的回复:
问题已自行解决,还是要感谢大家帮助!散分!
经常见到只说解决,不说解决方法的帖子。
解决方案九:
引用7楼mapengjuyinong的回复:
引用6楼mylove__china的回复:问题已自行解决,还是要感谢大家帮助!散分!
经常见到只说解决,不说解决方法的帖子。
解决方案十:
我找到了:usingSystem.Runtime.Serialization;同时手动添加引用。添加System.Runtime.Serialization;dll文件到项目引用中。
解决方案十一:
引用6楼mylove__china的回复:
问题已自行解决,还是要感谢大家帮助!散分!
散个P呀,BS发贴不结贴的.4楼回答是对的.
解决方案十二:
引用9楼fenggui的回复:
我找到了:usingSystem.Runtime.Serialization;同时手动添加引用。添加System.Runtime.Serialization;dll文件到项目引用中。
我就是楼上这样解决的
解决方案十三:
我也遇到同样问题,需要手动添加!System.Runtime.Serialization.dll