不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
C# XML序列化/反序列化类XmlSerializer使用示例
编辑:dnawo 日期:2013-05-03
复制内容到剪贴板 程序代码
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//序列化
Person person = new Person() { Name = "dnawo", Age = 100 };
string xml = Serialize(person);
Console.WriteLine(xml);
//反序列化
person = Deserialize<Person>(xml);
Console.WriteLine(person.Name);
Console.ReadKey();
}
/// <summary>
/// 序列化
/// </summary>
/// <param name="o"></param>
/// <returns></returns>
public static string Serialize(object o)
{
return Serialize(o, new UTF8Encoding(false));
}
/// <summary>
/// 序列化
/// </summary>
/// <param name="o"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static string Serialize(object o, Encoding encode)
{
string result = string.Empty;
//方法1:
using (MemoryStream output = new MemoryStream())
{
XmlSerializer serializer = new XmlSerializer(o.GetType());
serializer.Serialize(output, o);
result = encode.GetString(output.ToArray());
}
//方法2:
//using (MemoryStream output = new MemoryStream())
//{
// using (XmlTextWriter writer = new XmlTextWriter(output, encode))
// {
// XmlSerializer serializer = new XmlSerializer(o.GetType());
// serializer.Serialize(writer, o);
// }
// result = encode.GetString(output.ToArray());
//}
//方法3:可删除xml声明和默认命名空间(xmlns:xsi,xmlns:xsd)
//XmlWriterSettings setting = new XmlWriterSettings();
//setting.Encoding = encode;
//setting.OmitXmlDeclaration = true;
//XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
//namespaces.Add("", "");
//using (MemoryStream output = new MemoryStream())
//{
// using (XmlWriter writer = XmlWriter.Create(output, setting))
// {
// XmlSerializer serializer = new XmlSerializer(o.GetType());
// serializer.Serialize(writer, o, namespaces);
// result = encode.GetString(output.ToArray());
// }
//}
return result;
}
/// <summary>
/// 反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="str"></param>
/// <returns></returns>
public static T Deserialize<T>(string str) where T : class
{
return Deserialize<T>(str, new UTF8Encoding(false));
}
/// <summary>
/// 反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="str"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static T Deserialize<T>(string str, Encoding encode) where T : class
{
T result = null;
//方法1:
using (MemoryStream input = new MemoryStream(encode.GetBytes(str)))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
result = serializer.Deserialize(input) as T;
}
//方法2:
//using (MemoryStream input = new MemoryStream(encode.GetBytes(str)))
//{
// using (XmlTextReader reader = new XmlTextReader(input))
// {
// XmlSerializer serializer = new XmlSerializer(typeof(T));
// result = serializer.Deserialize(reader) as T;
// }
//}
//方法3:
//using (MemoryStream input = new MemoryStream(encode.GetBytes(str)))
//{
// using (XmlReader reader = XmlReader.Create(input))
// {
// XmlSerializer serializer = new XmlSerializer(typeof(T));
// result = serializer.Deserialize(reader) as T;
// }
//}
return result;
}
}
/// <summary>
/// 测试类
/// </summary>
[XmlRoot("per")]
public class Person
{
[XmlElement("na")]
public string Name { get; set; }
[XmlElement("ag")]
public int Age { get; set; }
}
}
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//序列化
Person person = new Person() { Name = "dnawo", Age = 100 };
string xml = Serialize(person);
Console.WriteLine(xml);
//反序列化
person = Deserialize<Person>(xml);
Console.WriteLine(person.Name);
Console.ReadKey();
}
/// <summary>
/// 序列化
/// </summary>
/// <param name="o"></param>
/// <returns></returns>
public static string Serialize(object o)
{
return Serialize(o, new UTF8Encoding(false));
}
/// <summary>
/// 序列化
/// </summary>
/// <param name="o"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static string Serialize(object o, Encoding encode)
{
string result = string.Empty;
//方法1:
using (MemoryStream output = new MemoryStream())
{
XmlSerializer serializer = new XmlSerializer(o.GetType());
serializer.Serialize(output, o);
result = encode.GetString(output.ToArray());
}
//方法2:
//using (MemoryStream output = new MemoryStream())
//{
// using (XmlTextWriter writer = new XmlTextWriter(output, encode))
// {
// XmlSerializer serializer = new XmlSerializer(o.GetType());
// serializer.Serialize(writer, o);
// }
// result = encode.GetString(output.ToArray());
//}
//方法3:可删除xml声明和默认命名空间(xmlns:xsi,xmlns:xsd)
//XmlWriterSettings setting = new XmlWriterSettings();
//setting.Encoding = encode;
//setting.OmitXmlDeclaration = true;
//XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
//namespaces.Add("", "");
//using (MemoryStream output = new MemoryStream())
//{
// using (XmlWriter writer = XmlWriter.Create(output, setting))
// {
// XmlSerializer serializer = new XmlSerializer(o.GetType());
// serializer.Serialize(writer, o, namespaces);
// result = encode.GetString(output.ToArray());
// }
//}
return result;
}
/// <summary>
/// 反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="str"></param>
/// <returns></returns>
public static T Deserialize<T>(string str) where T : class
{
return Deserialize<T>(str, new UTF8Encoding(false));
}
/// <summary>
/// 反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="str"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static T Deserialize<T>(string str, Encoding encode) where T : class
{
T result = null;
//方法1:
using (MemoryStream input = new MemoryStream(encode.GetBytes(str)))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
result = serializer.Deserialize(input) as T;
}
//方法2:
//using (MemoryStream input = new MemoryStream(encode.GetBytes(str)))
//{
// using (XmlTextReader reader = new XmlTextReader(input))
// {
// XmlSerializer serializer = new XmlSerializer(typeof(T));
// result = serializer.Deserialize(reader) as T;
// }
//}
//方法3:
//using (MemoryStream input = new MemoryStream(encode.GetBytes(str)))
//{
// using (XmlReader reader = XmlReader.Create(input))
// {
// XmlSerializer serializer = new XmlSerializer(typeof(T));
// result = serializer.Deserialize(reader) as T;
// }
//}
return result;
}
}
/// <summary>
/// 测试类
/// </summary>
[XmlRoot("per")]
public class Person
{
[XmlElement("na")]
public string Name { get; set; }
[XmlElement("ag")]
public int Age { get; set; }
}
}
运行结果:
引用内容
<?xml version="1.0" encoding="utf-8"?><per xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><na>dnawo</na><ag>100</ag></per>
dnawo
dnawo
常用Attribute
复制内容到剪贴板 程序代码
XmlRootAttribute
XmlElementAttribute
XmlTextAttribute
XmlIgnoreAttribute
XmlElementAttribute
XmlTextAttribute
XmlIgnoreAttribute
上一篇: <script type="text/html"></script>使用一例
下一篇: C# XML序列化/反序列化类DataContractSerializer使用示例
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
下一篇: C# XML序列化/反序列化类DataContractSerializer使用示例
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 6282
发表评论
请登录后再发表评论!