仅基于其名称加载程序集

时间:2013-03-14 12:04:27

标签: .net c#-4.0

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

访问此类型

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

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

这有效,但我有几个问题:

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

感谢

0 个答案:

没有答案