以下のコードは、次のエラーで逆シリアル化に失敗します。
値「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<> オーバーロードの 1 つに何かを渡してこれを機能させたいのですが、この例外を解決する最善の方法がわかりません