在另一个平台上反序列化.NET对象

在另一个平台上反序列化.NET对象,.net,matlab,serialization,.net,Matlab,Serialization,我有一个包含由.NET framework的BinaryFormatter.Serialize方法创建的数据的文件。我想以一种自动化的方式将这些数据,即所描述对象的某些属性的值,导入到MATLAB中。有没有一个简单的方法可以做到这一点?我对.NET一无所知,但假设安装整个.NET框架并使用其反序列化程序是可能的,但很复杂,因为我可以完全在MATLAB中完成所有工作,所以我希望有一种更简单的方法。如果目的是创建可移植格式,.NET代码应该使用不同的序列化程序,也许是XML.True。但我无法控制。

我有一个包含由.NET framework的BinaryFormatter.Serialize方法创建的数据的文件。我想以一种自动化的方式将这些数据,即所描述对象的某些属性的值,导入到MATLAB中。有没有一个简单的方法可以做到这一点?我对.NET一无所知,但假设安装整个.NET框架并使用其反序列化程序是可能的,但很复杂,因为我可以完全在MATLAB中完成所有工作,所以我希望有一种更简单的方法。

如果目的是创建可移植格式,.NET代码应该使用不同的序列化程序,也许是XML.True。但我无法控制。实际上,我在这方面取得了一些进展——我发现MATLAB可以轻松加载相关的.NET程序集,并且我可以调用反序列化程序。剩下的问题是,我无法让反序列化程序看到定义反序列化命令输出格式的私有程序集。我可以加载该私有程序集,并导入其函数,但反序列化命令仍然表示找不到程序集。按照mathworks网站上的建议,将私有DLL放在matlab win32目录中并没有解决问题。事实上,我找到了答案,这让我有些惊讶。事实证明,我需要运行64位matlab,并且将专用DLL放在matlab bin/win64目录中工作正常!为了帮助他人,相关的MATLAB命令如下:bf=System.Runtime.Serialization.Formatters.Binary.BinaryFormatter;inputstream=System.IO.FileStream'pathtoyourfile',System.IO.FileMode.Open,System.IO.FileAccess.Read,System.IO.FileShare.Read;ret_obj=System.Object;ds=NET.addAssembly'path_to_private_assembly_defining_datatype';导入ds.*ret_obj=bf.Deserializeinputstream;这听起来像是一个答案,尽管我会把你的问题的标题改为在MATLAB中,因为仅仅加载.NET DLL并不能适用于所有平台。