C# 对象到字符串并返回

标签 c# string object

我的问题:
我有一个动态代码编译器,可以编译一段代码。其余的代码。 (imports, namespace, class, main function) 已经存在了。片段被插入其中,然后被编译成程序集并执行。这就是用户能够执行代码片段的方式。主函数(执行代码段的地方)具有对象的返回类型。此代码段在远程计算机上执行。代码由客户端发送到网络服务器。远程计算机从网络服务器读取代码并执行。在远程计算机上,我可以轻松查看返回对象的类型及其值。但是我只能将字符串发送到网络服务器。

问题:
无论类型是什么,如何将对象转换为字符串以及如何将其转换回来?

尝试过:
我尝试使用 ToString(),在使用 int、string、double 和 bool 时效果很好。但是对于图像或其他类型当然是行不通的,因为我还需要能够将其转换回来。

最佳答案

使用 BinaryFormatter 序列化对象,然后将字节作为字符串(Base64 编码)返回。向后做会让你的对象回来。

public string ObjectToString(object obj)
{
   using (MemoryStream ms = new MemoryStream())
   {
     new BinaryFormatter().Serialize(ms, obj);         
     return Convert.ToBase64String(ms.ToArray());
   }
}

public object StringToObject(string base64String)
{    
   byte[] bytes = Convert.FromBase64String(base64String);
   using (MemoryStream ms = new MemoryStream(bytes, 0, bytes.Length))
   {
      ms.Write(bytes, 0, bytes.Length);
      ms.Position = 0;
      return new BinaryFormatter().Deserialize(ms);
   }
}

关于C# 对象到字符串并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6979718/

相关文章:

c# - 如何初始化Point数组?

c# - 将多个参数从 url 传递到 html.actionlink

java - 如何使用索引值拆分正则表达式

javascript - 逗号与 Javascript 中的数字输入混淆

java - 在 Python/Java 服务器/客户端之间发送对象

c# - 桌面上的 UWP 全局 MessageDialog

Python Pandas 使用不同日期读取多个 Excel 文件

javascript - 如何使用javascript在对象数组中执行计算

javascript - 编写一个函数对对象数组进行排序(通过使用另一个对象来指定排序路径和顺序)

c# - MVC 添加和删除子集合中的项目