六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

對于序列化-開心,轉來一篇

[摘要]建立一個Serialization類,包括兩個靜態方法Save和Get。見程序中的必須注意,對要序列化的類,以及其包括的其他結構和類,都必須用[Serializable]或者[NonSerialized]來標記。NET Serialization By Vyacheslav Biktagirov....
建立一個Serialization類,包括兩個靜態方法Save和Get。見程序中的
必須注意,對要序列化的類,以及其包括的其他結構和類,都必須用[Serializable]或者[NonSerialized]來標記。

NET Serialization By Vyacheslav Biktagirov
.NET enters in our life. So, we must at least learn what about new technoloy of. I think, that XML persistance is one of keys that make .NET belling so good.. OK. So what about persisting of? Imagine we have a class value. In C# termines, like that:
public class NiceClass
{
public long SomeLong=10;
private string str="Now nothing";
public int SomeInt=15;
public string SomeString
{
get
{
return str;
}
set
{
str=value;
}
}
public NiceClass()
{
}
}

Okay, it has some members and one property. Now, we get instance of such class:
NiceClass x=new NiceClass();
Now we work with it and, after work, want to "save" the class to some stream and "send" it to inother application. How we do such a thing? There is special class, named BinaryFormatter, that can take class instance, "save" it in binary format. Than, we can send it to any stream, and restore for our enjoy. But, this class needs some info about our class, like what members we want to store and what not. How we can did it? There is special C# mechanism for class self-describing named "custom properties". Let's do it:

[Serializable]// says class to be serializable
public class NiceClass
{
public long SomeLong=10;
private string str="Now nothing";
[NonSerialized] public int SomeInt=15; // this member is not for serialization
public string SomeString
{
get
{
return str;
}
set
{
str=value;
}
}
public NiceClass()
{
}


Now, after we sayd what exactly we want to serialize, let's do it:
NiceClass x=new NiceClass(); // Get instance
x.SomeInt=20; // Do something
x.SomeLong=30;
x.SomeString="Bikta";
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms=new MemoryStream(); // Stream
bf.Serialize(ms,x); // "Save" object state
NiceClass y=new NiceClass();
ms.Seek(0,0); // Return stream to start
y=(NiceClass)bf.Deserialize(ms); // Restore object

Nice, is it?

But what about we want save class in SOAP format for sending via HTTP ? No problem. SoapFormatter will help us.[Serializable] property will help us as with BinaryFormatter. So:

byte[] buffer=new byte[200];
NiceClass x=new NiceClass();
x.SomeInt=20;
x.SomeLong=30;
x.SomeString="Bikta";
SoapFormatter bf = new SoapFormatter();
MemoryStream ms=new MemoryStream();
bf.Serialize(ms,x);
NiceClass y=new NiceClass();
ms.Seek(0,0);
y=(NiceClass)bf.Deserialize(ms);
ms.Seek(0,0);
ms.Read(buffer,0,200);
string s=System.Text.Encoding.ASCII.GetString(buffer,0,200);
MessageBox.Show(Form.ActiveForm,s); // Look SOAP

But what about simple XML, without SOAP-specific additions? No problem.XmlSerializer, help us!

byte[] buffer=new Byte[200];
NiceClass x=new NiceClass();
x.SomeInt=20;
x.SomeLong=30;
x.SomeString="Bikta";
XmlSerializer xs=new XmlSerializer(x.GetType());
MemoryStream ms=new MemoryStream();
xs.Serialize(ms,x);
ms.Seek(0,0);
NiceClass y;
y=(NiceClass)xs.Deserialize(ms);
ms.Seek(0,0);
ms.Read(buffer,0,200);
string s=System.Text.Encoding.ASCII.GetString(buffer,0,200);
MessageBox.Show(Form.ActiveForm,s); // XML, here are you?

But pay attention, that XmlSerializer ignores [Serializable] property! It uses it's own property named [XmlIgnore] for marking non-serialized members. So we change the class:


 public class NiceClass
{
public long SomeLong=10;
private string str="Now nothing";
[XmlIgnore] public int SomeInt=15;// Added XmlIgnore
public string SomeString
{
get
{
return str;
}
set
{
str=value;
}
}
public NiceClass()
{
}

Now it will work as we want. Pay attention, that it is no any problem to serialize private(!) string member!!! How formatters do it? What's your opinion? Thay just use "unsafe" code. But about that - in next article.. 


主站蜘蛛池模板: 日日夜夜伊人 | 日本不卡视频免费 | 中文字幕在线三浦惠理子 | 婷婷爱爱 | 青青热久免费精品视频网站 | 欧美视频在线观看xxxx | 青草视频网站在线观看 | 四虎在线精品免费高清在线 | 日本japanese丰满高清成人视 | 亚洲美女色在线欧洲美女 | 四虎影库永久在线 | 中文字幕第一页国产 | 日韩视频在线免费观看 | 日韩一区二区精品久久高清 | 日本特黄a级高清免费酷网 日本特黄aaaaaaa大片 | 日韩爽爽视频爽爽 | 日本一区视频在线 | 亚洲精品乱码久久久久久中文字幕 | 欧美中文字幕在线视频 | 伊人精品久久久大香线蕉99 | 午夜视频在线免费观看 | 亚洲精品在线观看视频 | 清纯制服被啪啪护士 | 亚洲国产成人久久笫一页 | 天天色天天色天天色 | 西西gogo午夜高清大胆 | 日本精品久久久久久久 | 日韩av线上| 日本aa大片在线播放免费看 | 日韩伦理在线视频 | 亚洲小视频在线观看 | 丝袜美腿美女被狂躁在线观看 | 中文成人在线视频 | 伊人福利 | 亚洲经典在线观看 | 中文字幕网资源站永久资源 | 四虎影院最新网址 | 欧美在线aa | 日韩爱爱网 | 殴美毛片 | 欧美在线视频免费播放 |