【问题标题】:C# Entity Framework resources and assembly resolve (appdomain)C# Entity Framework 资源和程序集解析 (appdomain)
【发布时间】:2018-03-31 17:08:25
【问题描述】:

我面临一个我似乎无法解释发生了什么的问题。

如果我在我的 DLL(C#) 中使用 AppDomain.AssemblyResolve 事件并使用实体框架,我很可能会看到它尝试加载以下资源文件:

EntityFramework.resources, Version=6.0.0.0, Culture=fr-FR, PublicKeyToken=b77a5c561934e089

之后

EntityFramework.resources, Version=6.0.0.0, Culture=fr, PublicKeyToken=b77a5c561934e089

我不知道他们可以住在哪里,也不知道他们是否存在于某个地方。 我找不到任何讨论或微软网站谈论这个。

当然,如果我在我的事件中为该资源返回 null 作为 Microsoft 关于 AssemblyResolve 事件的文档中的状态,那么一切正常,但问题是我希望能够不返回 null,因为还有另一个 DLL (在 .NET 4 之前构建)由外部公司完成并在与我的 DLL 相同的应用程序中使用,该 DLL 将尝试加载程序集资源文件并引发导致应用程序崩溃的异常。

出于这个原因,我试图了解如何处理这种特殊情况并避免返回 null。

是否有人解释了为什么 Entity Framework 会尝试加载这些资源文件,以及是否有办法在不从 aassemblyresolve 返回 null 的情况下处理这个问题?

【问题讨论】:

  • 感谢@marc_s 对我的帖子所做的更正,这样会更清楚!

标签: c# assemblyresolve


【解决方案1】:

我自己想通了。

解决方案很简单。

当询问EntityFramework.resources 时,只需从当前AppDomain 返回“已经”加载的EntityFramework 实例,而不是使用LoadFrom/Load/LoadFile 方法。

希望这对将来的某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-20
    • 2016-02-17
    • 1970-01-01
    • 2012-01-30
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多