相关疑难解决方法(0)

AssemblyName.ReferenceMatchesDefinition 如何工作?

给出以下代码:

  var n1 = new AssemblyName ("TestDll, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089");
  var n2 = new AssemblyName ("TestDll, Version=2.0.0.2001, Culture=en-US, PublicKeyToken=ab7a5c561934e089");

  Console.WriteLine (AssemblyName.ReferenceMatchesDefinition (n1, n2));
  Console.WriteLine (AssemblyName.ReferenceMatchesDefinition (n2, n1));
Run Code Online (Sandbox Code Playgroud)

为什么这两个检查都打印“True”?我本以为 AssemblyName.ReferenceMatchesDefinition 应该考虑程序集名称的版本、区域性和公钥标记属性的差异,不是吗?

如果没有,ReferenceMatchesDefinition 能做什么而简单名称的比较却不能做什么?

c# reflection assembly-resolution assembly-name

4
推荐指数
1
解决办法
723
查看次数