下面的代码在反序列化中失败,并出现以下错误。
将值“AQID”转换为类型“System.Collections.Generic.IEnumerable`1[System.Byte]”时出错
public class ByteArrayTest
{
public string SomeString { get; set; }
public IEnumerable<byte> ByteArray { get; set; }
}
using Newtonsoft.Json;
[TestClass]
public class UnitTest10
{
[TestMethod]
public void TestTheByteArraySerialization()
{
var test = new ByteArrayTest { ByteArray = new byte[] { 1, 2, 3 }, SomeString = "testing" };
var serializedData = JsonConvert.SerializeObject(test);
//This line belows fails with an error of can't convert to IEnumerable<byte>
var myByeArrayClass = JsonConvert.DeserializeObject<ByteArrayTest>(serializedData);
Assert.AreEqual(test.ByteArray, myByeArrayClass.ByteArray);
}
}
在我的特殊情况下,我不拥有 ByteArrayTest 类,这只是问题的一个简单示例。我想要一个不涉及修改 ByteArrayTest 类的解决方案。理想情况下,我会将某些内容传递给 DeserializeObject<> 重载之一以使其正常工作,但我不确定解决此异常的最佳方法