首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我在c#中序列化了一个类,Unrealscript可以读取它吗?

如果我在c#中序列化了一个类,Unrealscript可以读取它吗?
EN

Stack Overflow用户
提问于 2014-01-06 15:01:07
回答 3查看 258关注 0票数 1

我正在设法在C#和Unrealscript之间传递大量信息。我正在试图研究的一件事是,C#是否可以序列化一个类,以便UnrealScript以后阅读。

在C#中序列化并不是那么糟糕:

代码语言:javascript
复制
InfoToSerialize myInfo = new InfoToSerialize();
myInfo.i = 1;
myInfo.j = 2;
myInfo.str = "hello";

IFormatter formatter = new BinaryFormatter();

Stream stream = new FileStream("MyFile", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, myInfo);
stream.Close();

这段代码片段成功地生成了一个名为MyFile的二进制文件,该文件看起来非常序列化。如果在记事本应用程序中打开它,那么其中的大部分数据都由不可读的符号和图标组成。

我的问题是:那么是否有可能让UnrealScript访问该文件并取消序列化?到目前为止,我对这一主题的研究似乎是不可能的,但也许在这里的某个地方已经有了一些这方面的经验。我知道UnrealScript有自己的保存和加载功能,但我不确定这是否会帮助我完成这项任务。非常感谢您提供的任何信息!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-06 15:08:42

这是可能的,但您可能需要额外的工作,这取决于UnrealScript中可用的内容。.NET框架支持几种不同的序列化方案。默认方法是序列化为内部二进制格式。如果您需要从同一个.NET程序中读写(并且只要您的程序能够处理升级--二进制序列化可以在.NET框架的不同版本之间中断),这是很好的。但这在您的情况下根本行不通--您需要能够从没有在.NET框架中编写的程序中读取对象。

幸运的是,还有一些方法可以更改序列化方法。例如,您可以选择将其序列化为XML。在频谱的另一端,如果.NET框架提供的序列化程序不能被UnrealScript读取,则可以编写自己的序列化程序,该序列化程序可以写入所需的任何格式。

此MSDN链接有关于序列化的更多信息。

票数 2
EN

Stack Overflow用户

发布于 2014-01-06 15:05:33

只有当您使用与语言无关的序列化方案时。

默认的.NET序列化提供程序要求.NET将对象读入。但是,如果您使用的是与语言无关的序列化方案,例如普通的旧XML、JSON或您自己的预定义格式,那么如果提供程序可用,任何其他语言都应该能够解析它。

票数 2
EN

Stack Overflow用户

发布于 2014-01-06 15:13:09

BinaryFormatter使用的格式非常特定于.NET,并且依赖于.NET类型信息,这些信息在UnrealScript中无法方便地序列化。

但是,我相信,JSON解析在UDK中是可用的,尽管您可能需要手动完成大多数实际的反序列化。有多种方法可以从.NET序列化到JSON,而且JSON也很容易手动序列化。

您可以使用JSON.NET (http://json.codeplex.com/)来实现快速的JSON序列化。

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

https://stackoverflow.com/questions/20952762

复制
相关文章

相似问题

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