1

我有一个使用该AssemblyQualifiedName方法序列化为字符串 str 的 .net 类型。稍后我想通过使用访问此类型Type.GetType(str);

现在的问题是程序集版本在类型的序列化和反序列化之间的几个月内发生了变化。然后我创建了一个自定义程序集解析器来删除版本:

Type.GetType(str,
                assemblyName =>
                {
                    assemblyName.Version = null;
                    return System.Reflection.Assembly.Load(assemblyName);
                },
                null // type resolver : default
                );

这可行,但我对此有几个问题:

  • 在我的情况下,公共令牌密钥在不同版本之间保持相同是否正常?是什么让他们改变?是否也可以删除公共令牌密钥的标识?(就像我对版本所做的那样)
  • 这是正确的方法吗?理想情况下,我只想在给定的程序集中加载给定的类型,但我觉得我做错了什么

谢谢

4

0 回答 0