首页新闻找找看学习计划

急!!!C# 奖多种对象序列化后保存到数据库,然后再从数据库中反序列化相应的对象,如何实现???

0
悬赏园豆:100 [已解决问题] 解决于 2016-11-08 16:44

假如有多个不同的对象:如

public class A
{
public string A_1{get;set;}
}

public class B
{
public int B_1{get;set;}
}

public class C
{
public DateTime C_1{get;set;}
}
比如简单序列化成JSON,

{"A_1":"1111"} {"B_1":123} {"C_1":"2012-11-21 21:05:09"}

 

分别将上面三种对象序列化成JSON或XML后保存到数据库中,并记录下类名.

 

然后再从数据库中读取出来,根据类名反序列化相应的内容.怎么实现

问题补充:

各位提的方案都是在已知类型的情况下进行转换

 

我的意思是只提供类名的命名空间名称以及类的JSON字符,创建这个类.

 

这个类的命名空间不是固定的,会随业务的需要增加各种类,但增加类后,更新一个类的DLL,程序就能自动根据类名创建对象,

duxer的主页 duxer | 初学一级 | 园豆:7
提问于:2012-11-21 21:05
< >
分享
最佳答案
0

用json.net类库,format一下就出来你这种json了,还支持list的操作。

xml的看看这里http://blog.csdn.net/21aspnet/article/details/1539682

收获园豆:100
az235 | 大侠五级 |园豆:8263 | 2012-11-21 22:12

用反射+工厂模式就可以解决这个问题啊(创建类对象,然后赋值嘛),如果你要更加高级点,你可以使用动态编译技术,都不用换DLL文件,具体参照这里http://www.cnblogs.com/zlgcool/archive/2008/10/12/1309616.html

az235 | 园豆:8263 (大侠五级) | 2012-11-22 20:16
其他回答(7)
0
chenping2008 | 园豆:9836 (大侠五级) | 2012-11-21 21:26
0
jason2013 | 园豆:1998 (小虾三级) | 2012-11-22 09:18
0

BinaryFomatter这个不好。因为这个首版本控制,更新了类的版本之后就会导致一些信息没办法再序列化回来。

建议使用json.net 序列化为json.或者xml.见这里

http://www.cnblogs.com/billchen/archive/2005/08/27/223992.html

````` | 园豆:14268 (专家六级) | 2012-11-22 09:25
1

Newtonsoft.Json

王大湿 | 园豆:457 (菜鸟二级) | 2012-11-22 11:20
0

Newtonsoft绝对能满足你的需求。地址。json.codeplex.com

幻天芒 | 园豆:36522 (高人七级) | 2012-11-22 23:16
0

protobuf.net 占用空间小,效率高.

开源微服务(BeetleX) | 园豆:225 (菜鸟二级) | 2012-11-24 15:55
0

看反射和json

我有写一个博文

Giant Liu | 园豆:888 (小虾三级) | 2012-12-03 22:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册