【问题标题】:Fully Qualified Type Resolution in .NET.NET 中的完全限定类型解析
【发布时间】:2010-07-13 15:03:54
【问题描述】:

简单的问题(出现在 SharePoint 2010 中,但这并不真正相关)。

怎么做:

<add name="LdapMembershipProvider" type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 

...当实际类型 (LdapMembershipProvider) 仅在 Microsoft.Office.Server.UserProfiles 程序集中而不在 Microsoft. Office.Server 程序集?

两者都是 GAC 注册的。

Fusion 是否会探测其他程序集,即使指定了完全限定的类型?

【问题讨论】:

  • 两个程序集的公钥令牌是什么?
  • 两个程序集的公钥令牌相同:71e9bce111e9429c。

标签: .net sharepoint assembly-resolution fusion


【解决方案1】:

程序集绑定重定向?

MSDN - Assembly Binding Redirection?

您可以重定向程序集绑定 引用另一个版本的 通过使用中的条目组装 应用程序或机器配置 文件。您可以将引用重定向到 .NET Framework 程序集,第三方 程序集,或您自己的程序集 应用。

【讨论】:

  • 嗨瑞恩;我不认为它与绑定重定向有关(用于重定向到不同版本的程序集,而不是一起重定向到不同的程序集)。
  • 嗯 - 我以为你可以做类型和版本。否决我自己的答案!是时候破解 Fusion 日志查看器了,我认为 msdn.microsoft.com/en-us/library/e74a18c4(VS.71).aspx + Suzanne Cooke 是第一个深入了解内部知识的博主。 blogs.msdn.com/b/suzcook
【解决方案2】:

是否有可能公钥令牌实际上指向正确的程序集而忽略了程序集名称?

我正在阅读以下 MSDN 参考:

http://msdn.microsoft.com/en-us/library/system.reflection.assemblyname.aspx

听起来很可疑的摘录:

可以指定公钥 和一个不一致的密钥对 价值观。这在 开发者场景。在这种情况下, 使用 GetPublicKey 检索的公钥 指定正确的公钥, 而 KeyPair 指定公共 和期间使用的私钥 发展。 当运行时检测到 密钥对和密钥不匹配 公钥,它在 注册匹配的正确键 公钥。

不确定。一种立即浮现在脑海中但我无法确认的行为是,如果它无法在在配置中指定的程序集中找到类型,它会尝试通过您的项目引用找到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    相关资源
    最近更新 更多