gpt4 book ai didi

C# 对象到字符串并返回

转载 作者:可可西里 更新时间:2023-11-01 08:20:08 26 4
gpt4 key购买 nike

我的问题:
我有一个动态代码编译器,可以编译一段代码。其余的代码。 (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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com