windows8 中的序列化以及反序列化

17 篇文章 0 订阅
12 篇文章 0 订阅

你可以在Launch时,进行反序列化。在Suspend和Terminate时,进行序列化。

你可以自定义数据类型,用DataContract和DataMember属性声明要序列化的类和数据成员,然后调用DataContractSerializer Class 进行实际的序列化和反序列化。

样例代码如下

using System.Runtime.Serialization;

// declare custom serializable type

[DataContract(Name = "MyData", Namespace = "http://www.mysite.com")]
class MyData
{
	[DataMember()]
	public string FirstName;
	[DataMember]
	public string LastName;
	[DataMember()]
	public int ID;

	public MyData(string fname, string lname, int newID)
	{
		FirstName = fname;
		LastName = lname;
		ID = newID;
	}
}

// serialize sample code

MyData myData = new MyData("a", "b", 1);             
StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("mydata,xml", CreationCollisionOption.ReplaceExisting);	
IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.ReadWrite);
using (IOutputStream outStream = stream.GetOutputStreamAt(0))
{                                              
	DataContractSerializer serializer = new DataContractSerializer(typeof(MyData));
	serializer.WriteObject(outStream.AsStreamForWrite(), myData);
	await outStream.FlushAsync();
}
			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows下的TCP传输,可以通过序列化反序列化来传输字符串数据。序列化将对象转换为可以在网络上传输或存储的字节流,而反序列化则将字节流还原为对象。 在C++,可以使用一些库或技术来实现序列化反序列化。下面是一个示例代码,演示了如何使用C++的Boost库进行字符串的序列化反序列化: ```cpp #include <iostream> #include <string> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp> #include <boost/serialization/string.hpp> // 序列化字符串 std::string SerializeString(const std::string& str) { std::ostringstream oss; boost::archive::text_oarchive oa(oss); oa << str; return oss.str(); } // 反序列化字符串 std::string DeserializeString(const std::string& serializedData) { std::istringstream iss(serializedData); boost::archive::text_iarchive ia(iss); std::string str; ia >> str; return str; } int main() { std::string originalString = "Hello, World!"; // 序列化字符串 std::string serializedString = SerializeString(originalString); std::cout << "Serialized String: " << serializedString << std::endl; // 反序列化字符串 std::string deserializedString = DeserializeString(serializedString); std::cout << "Deserialized String: " << deserializedString << std::endl; return 0; } ``` 在上述示例,我们使用Boost库提供的archive组件来进行序列化反序列化操作。使用boost::archive::text_oarchive对象将字符串写入std::ostringstream,进行序列化操作。然后,使用boost::archive::text_iarchive对象从std::istringstream读取数据,进行反序列化操作。 通过调用SerializeString函数,将原始字符串序列化为字节流。然后,调用DeserializeString函数,将字节流反序列化为字符串。最后,可以打印出序列化前后的字符串数据,验证序列化反序列化的过程。 请注意,这只是示例代码使用的一种方法,实际上还有其他的序列化反序列化库可供选择,如Google Protocol Buffers、MessagePack等。具体选择哪种库取决于你的需求和项目环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值