GAN*_*ANI 1 .net c# xml-serialization datacontractserializer
private string DeSerialize(string studata)
{
dcs= new DataContractSerializer(typeof(string));
try
{
using (var q = new StringReader(studata))
{
using (XmlReader reader = XmlReader.Create(sr))
{
var k = dcs.ReadObject(reader);
return k.ToString();
}
}
}
catch
{}
return string.Empty;
}
Run Code Online (Sandbox Code Playgroud)
用上述方法得到了在第1行位置41.运行时错误"错误从命名空间'http://schemas.microsoft.com/2003/10/Serialization/’..遇到'元素’学生名字空间期待元件'字符串’
序列化某些内容时,会将对象序列化为某种表示形式,如XML,JSON等.如果表示形式不是二进制,则序列化的结果可以存储在字符串中.
您的代码正在尝试获取字符串并将其反序列化为字符串.那没有意义.
这条线
dcs= new DataContractSerializer(typeof(string));
Run Code Online (Sandbox Code Playgroud)
声明您要反序列化的序列化对象的类型是字符串类型.这可能不是你的意思.
更改typeof(string)到typeof(WhateverTypeIPreviouslySerialized).
另外,返回类型DeSerialize是string.那应该也是WhateverTypeIPreviouslySerialized.
与核心问题无关,我会指出空的问题
catch
{}
Run Code Online (Sandbox Code Playgroud)
是不好的做法.它将屏蔽被抛出并需要处理的异常.如果要在序列化失败时返回特定值,请将该值放在catch语句中.
| 归档时间: |
|
| 查看次数: |
2078 次 |
| 最近记录: |