我想使用字符串序列化/反序列化对象.需要注意的是,当我序列化/反序列化到文件时,一切正常.我要做的是获取一个字符串,这样我就可以将它存储在数据库中,然后将其拉出来进行反序列化.
这是有效的代码:
MemoryStream msTest = new MemoryStream();
Serializer.Serialize(msTest, registrationBlocks);
msTest.Position = 0;
List<RVRegistrationBlock> CopiedBlocks = new List<RVRegistrationBlock>();
CopiedBlocks = Serializer.Deserialize<List<RVRegistrationBlock>>(msTest);
Run Code Online (Sandbox Code Playgroud)
"CopiedBlocks"对象与"registrationBlocks"中的列表相同,工作正常,所有序列化/反序列化.我在这里保留所有内容.
当我尝试获取字符串时,以下代码不起作用:
MemoryStream msTestString = new MemoryStream();
Serializer.Serialize(msTestString, registrationBlocks);
msTestString.Position = 0;
StreamReader srRegBlock = new StreamReader(msTestString);
byte[] bytedata64 = System.Text.Encoding.Default.GetBytes(srRegBlock.ReadToEnd());
string stringBase64 = Convert.ToBase64String(bytedata64);
byte[] byteAfter64 = Convert.FromBase64String(stringBase64);
MemoryStream afterStream = new MemoryStream(byteAfter64);
List<RVRegistrationBlock> CopiedBlocksString = new List<RVRegistrationBlock>();
CopiedBlocksString = Serializer.Deserialize<List<RVRegistrationBlock>>(afterStream);
Run Code Online (Sandbox Code Playgroud)
在反序列化的最后一行,我得到一个异常:抛出了类型'ProtoBuf.ProtoException'的异常.我无法钻进它,内部异常为null.我无法弄清楚它为什么这样做.
我肯定已经把它缩小到这样一个事实:当我得到一个字符串时它会变得混乱.我将字符串存储在nvarchar(max)的数据库中,这就是我想要字符串的原因.
任何帮助将非常感激!
我目前处于从客户端通过FTP接收平面文件的情况.一些客户坚持需要使用SSH私钥SFTP而不是常规FTP.
我想要做的是设置一个Web服务器(最好是linux/unix,但我想我可以在Windows服务器上运行并购买SFTP服务器软件),它将执行以下操作:
允许我为每个具有唯一用户/通道的客户端设置SFTP目录.每个目录也必须有公共/私人密钥SSH"东西"我对此有点新,但我用Google搜索了它.
一旦文件被客户端完全上传,我想通过常规FTP启动ftp该文件到我的Windows云的事件.
这些文件最多可达10mb,因此在文件完全上传之前,即使是其他服务器的ftp也无法触发.
有没有人设置这样的东西?任何指导将不胜感激.
谢谢!
我正试图用我以前没见过的特殊格式解析日期/时间...
2011-03-08-12.26.27.000000
2011-03-08-13.00.03.000000
Run Code Online (Sandbox Code Playgroud)
C#中有一个简单的功能,我很想丢失,所以我可以轻松转换为日期/时间吗?
谢谢,我真的很感谢你的帮助.