0

以下のコードは、次のエラーで逆シリアル化に失敗します。

値「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 つに何かを渡してこれを機能させたいのですが、この例外を解決する最善の方法がわかりません

4

1 に答える 1