我目前在存档中有一个泛型类作为序列化文件。我不知道它是什么类型,只是它是这个泛型类。出于测试目的,我知道这个特定文件很简短。
PeriodV2<T> meta = new PeriodV2<T>()
此示例中T = Short / 16bit int
所以我现在尝试将文件反序列化为动态PeriodV2,但这会导致反序列化操作出错。
public PeriodV2<dynamic> GetPeriod (string path)
{
PeriodV2<dynamic> pm;
using (var inStream = File.OpenRead(path))
using (ZipFile zipfile = new ZipFile(inStream))
using (Stream zipinputstream = zipfile.GetInputStream(zipfile.GetEntry("period.meta")))
pm = (PeriodV2<dynamic>)_bf.Deserialize(zipinputstream);
pm.ArchivePath = path;
return pm;
}
未处理的类型&#39; System.InvalidCastException&#39;发生了 在Forecaster.Core.dll
附加信息:无法投射类型的对象 &#39; Forecaster.Core.PeriodV2&#39; 1 [System.Int16]&#39;输入 &#39; Forecaster.Core.PeriodV2&#39; 1 [System.Object的]&#39;
那么无论它是什么类型的PeriodV2,我怎样才能反序列化呢?