Unity StringBuilder单声道限制

时间:2017-11-04 17:33:25

标签: unity3d mono

StringBuilder sb = new StringBuilder();

为什么Mono在使用时会产生警告?

单声道限制:序列化格式与.NET不兼容

Unity 5.5.2和Mac中的Visual Studio。

我的英语很差,请理解,谢谢。

1 个答案:

答案 0 :(得分:0)

简短回答:您可以在自己的Unity3D代码中安全地忽略此警告。

更长的回答:在https://www.mono-project.com/docs/faq/technical/的单声道技术常见问题解答中有对此警告的解释。具体来说,这意味着Mono和官方MS.NET实现之间某些类的内部实现是不同的。如果您尝试在Mono应用程序中序列化对象(例如,在文件中保存对象),然后尝试在.NET应用程序中读取该对象,则可能会出现问题。

来自常见问题:

  

如果要序列化自己的类,则没有问题,因为您可以控制用于序列化的程序集和类。

     

但是,如果要从框架序列化对象,则无法保证序列化兼容性,因为这些对象的内部结构可能不同。在不同的MS.NET版本或Mono版本之间甚至不保证这种兼容性。

     

...

     

总之,如果您设计的应用程序将在不受您控制的不同环境和平台中运行,并且需要共享序列化对象(使用远程处理,普通文件或其他),您必须小心使用您共享的对象,并在可能的情况下避免使用框架中的对象。

因此,如果您只是在Mono应用程序或Unity3D应用程序中保存和加载自己代码中的对象,那么您可以放心地忽略此警告。