C#学习教程:在没有文件系统共享的情况下在C#中进行序列化这映射到ntext数据库字段。我知道我可以序列化为XML并存储到文件系统,但我想在不接触文件系统的情况下进行序列化。publicoverridevoidItemAdding(SPItemEventPropertiesproperties){//构建数组Listmatrix=newList
();/**填充数组被截断,工作正常*///现在将这个矩阵粘贴到我的列表项属性的字段中。AfterProperties["myNoteField"]=matrix;//抛出错误}看起来我应该可以这样做:XmlSerializers=newXmlSerializer(typeof(List
));properties.AfterProperties["myNoteField"]=s.Serialize.ToString();但这不起作用。我发现的所有示例都演示了如何写入文本文件。StringWriteroutStream=newStringWriter();XmlSerializers=newXmlSerializer(typeof(List>));s.Serialize(outStream,myObj);properties.AfterProperties["myNoteField"]=outStream.ToString();这是一个通用的序列化转换器(C#):publicstringSerializeObject(TobjectToSerialize){BinaryFormatterbf=newBinaryFormatter();内存流memStr=new内存流();尝试{bf.Serialize(memStr,objectToSerialize);memStr.Position=0;返回转换.ToBase64String(memStr.ToArray());}最后{memStr.Close();在你的情况下你可以调用:SerializeObject>(matrix);将TextWriter和TextReader类与StringWriter一起使用。完整的:XmlSerializers=newXmlSerializer(typeof(whatever));TextWriterw=newStringWriter();s.Serialize(w,whatever);你的字符串=w.ToString();在VB.NET公共共享函数SerializeToByteArray(ByValobject2SerializeAsObject)AsByte()使用流作为新的MemoryStreamDimxmlSerializerAsNewXmlSerializer(object2Serialize.GetType())xmlSerializer.Serialize(stream,object2Serialize)Returnstream.ToArray()EndionUsingFuncEndclicFuncobject2SerializeAsObject)AsStringDimbytesAsBytes()=SerializeToByteArray(object2Serialize)ReturnText.UTF8Encoding.GetString(bytes)EndFunctionINC#以上是C#学习教程:C#中的序列化和共享,无需使用filesystem的全部内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——publicbyte[]SerializeToByteArray(objectobject2Serialize){using(MemoryStreamstream=newMemoryStream()){XmlSerializerxmlSerializer=newXmlSerializer(object2Serialize.GetType());xmlSerializer.Serialize(流,对象t2序列化);返回stream.ToArray();}}publicstringSerializeToString(objectobject2Serialize){byte[]bytes=SerializeToByteArray(object2Serialize);返回Text.UTF8Encoding.GetString(字节);如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
