将泛型类反序列化为动态c#

时间:2017-05-23 12:32:34

标签: c# file generics serialization dynamic

我目前在存档中有一个泛型类作为序列化文件。我不知道它是什么类型,只是它是这个泛型类。出于测试目的,我知道这个特定文件很简短。

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,我怎样才能反序列化呢?

0 个答案:

没有答案