Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用反序列化对象c#_C#_Deserialization - Fatal编程技术网

如何使用反序列化对象c#

如何使用反序列化对象c#,c#,deserialization,C#,Deserialization,我试图在基于控制台的游戏中实现一个函数,以保存状态,并在需要时通过序列化将其加载回 如果我使用obj=(objType)BinaryFormatter.deserialize(FileStream)反序列化一个对象我可以通过简单地执行obj.objMethod()来使用对象可用的方法吗?或者我还缺少另一个步骤吗? 例如: Game game = new Game(); 假设游戏类有一个Map()方法。我序列化了游戏对象 BinaryFormatter.Serialize(FileStream,

我试图在基于控制台的游戏中实现一个函数,以保存状态,并在需要时通过序列化将其加载回

如果我使用
obj=(objType)BinaryFormatter.deserialize(FileStream)反序列化一个对象
我可以通过简单地执行
obj.objMethod()
来使用对象可用的方法吗?或者我还缺少另一个步骤吗? 例如:

Game game = new Game();
假设游戏类有一个
Map()
方法。我序列化了游戏对象

BinaryFormatter.Serialize(FileStream, game);
我反序列化了它

Game savedGame = (Game)BinaryFormatter.Deserialize(FileStream);
我可以做:

savedGame.Map();
是的,你可以用C#做。与Typescript或其他松散类型语言不同,C#实际上创建对象,然后在反序列化时赋值


但是在问这个问题之前,你应该试着这样做。

我不完全理解这个问题
savedGame
是一款
游戏
,因此您当然可以在上面调用
Map
。你到底在担心什么?当你序列化你的整个游戏对象时,是的,这应该是可行的。在你做的太多之前,你有没有考虑过用一种更友好的格式保存状态?例如JSON?在发布问题之前,您应该至少尝试执行一次代码,然后发布您面临的特定问题。