首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在文件中保存/恢复可序列化对象?(第2部分)动态对象

如何在文件中保存/恢复可序列化对象?(第2部分)动态对象
EN

Stack Overflow用户
提问于 2011-05-25 10:55:07
回答 1查看 707关注 0票数 1

我之前问过一个问题How to save/restore serializable object to/from file? ,当我知道我要保存什么类型的对象时,解决方案工作得很好。

如果我能保存一个未知类型的对象,那就太好了。

无论如何,我希望做一些类似的事情:

代码语言:javascript
运行
复制
[Serializable]
MyCustomClass
{
   // properties. I don't know which properties this class has. I might pass a different class. 
}


public void saveObjectInComputer(object obj, string pathWhereToSaveObject)
{
     // code
}

 public object deserializeObject(string pathWhereObjectIsLocated)
 {
      // code to retrive object
      // ...

      return object;
 }

static void Main(string[] args)
{
     List<MyCustomClass> myList = new List<MyCustomClass>();
     myList.add(new MyCustomClass { "properties go here" } );

     saveObjectInComputer(myList, @"C:\Temp\object.txt");

     // code  

     // Later it will be nice if I could retrive the object 

     object a = deserializeObject(@"C:\Temp\object.txt");

     // then cast a to List<MyCustomClass>

}

稍后,如果我构造一个汽车列表或人员列表,我可以使用相同的方法,而不是为每个构造一个新的方法。此外,稍后我知道我正在寻找的方法将返回一个对象,并且我可以将该对象强制转换为我当前正在使用的类型。

EN

Stack Overflow用户

回答已采纳

发布于 2011-05-25 11:00:43

您不能轻易地序列化未使用Serializable属性标记的对象,因此简短的答案是否定的。

如果你愿意进入中等难度的代码,你可以使用反射并设计一种自定义格式来保存状态,使用诸如索引属性等的异常。不过,你最好还是不要这样做。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6119039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档