XmlSerializer, DataContractSerialier 现在都可以不用加 [Serializable] 进行序列化 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click_1(object sender, RoutedEventArgs e) { var test = new Test { Name = "fx" }; var result = ""; var result1 = ""; using (var ms = new MemoryStream()) { var ser = new DataContractSerializer(typeof(Test)); ser.WriteObject(ms, test); ms.Position = 0; using (var sr = new StreamReader(ms)) { result = sr.ReadToEnd(); } } using (var ms = new MemoryStream()) { var ser = new XmlSerializer(typeof(Test)); ser.Serialize(ms, test); ms.Position = 0; using (var sr = new StreamReader(ms)) { result1 = sr.ReadToEnd(); } } MessageBox.Show(result + "\n" + result1); } } public class Test { public string Name { get; set; } }
当然可以 首先,你要明白什么叫序列化:百度的解释:将对象的状态信息转换为可以存储或传输的形式的过程 也就是说,转成能传输的格式就叫序列化 比如说要传输下面的类,会有很多种方法的 public class TestClass { public Int32 i; public String s; }把TestClass类转成一个Byte[]就能传输了 这也算序列化
http://msdn.microsoft.com/zh-cn/library/vstudio/ms233843.aspx
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
} private void Button_Click_1(object sender, RoutedEventArgs e)
{
var test = new Test { Name = "fx" };
var result = "";
var result1 = "";
using (var ms = new MemoryStream())
{
var ser = new DataContractSerializer(typeof(Test));
ser.WriteObject(ms, test);
ms.Position = 0;
using (var sr = new StreamReader(ms))
{
result = sr.ReadToEnd();
}
} using (var ms = new MemoryStream())
{
var ser = new XmlSerializer(typeof(Test));
ser.Serialize(ms, test);
ms.Position = 0;
using (var sr = new StreamReader(ms))
{
result1 = sr.ReadToEnd();
}
}
MessageBox.Show(result + "\n" + result1);
}
} public class Test
{
public string Name { get; set; }
}
首先,你要明白什么叫序列化:百度的解释:将对象的状态信息转换为可以存储或传输的形式的过程
也就是说,转成能传输的格式就叫序列化
比如说要传输下面的类,会有很多种方法的
public class TestClass
{
public Int32 i;
public String s;
}把TestClass类转成一个Byte[]就能传输了
这也算序列化