C# Entity Framework 资源和程序集解析 (appdomain)
C# Entity Framework resources and assembly resolve (appdomain)
我遇到了一个问题,我似乎无法解释发生了什么。
如果我在我的 DLL(C#) 中使用 AppDomain.AssemblyResolve
事件并且我使用 Entity Framework,我发现它可能会以某种方式尝试加载以下资源文件:
EntityFramework.resources, Version=6.0.0.0, Culture=fr-FR, PublicKeyToken=b77a5c561934e089
及之后
EntityFramework.resources, Version=6.0.0.0, Culture=fr, PublicKeyToken=b77a5c561934e089
我不知道他们可以住在哪里,也不知道他们是否存在于某个地方。
我找不到任何讨论或 Microsoft 网站谈论那个。
可以肯定的是,如果我 return 在我的事件中将该资源设为 null,就像 Microsoft 关于 AssemblyResolve
事件的文档中的状态一样,一切正常,但问题是我希望能够不return null 因为有另一个 DLL(在 .NET 4 之前构建)由外部公司完成并在与我的 DLL 相同的应用程序中使用,它将尝试加载程序集资源文件并抛出异常,这使得应用程序崩溃。
出于这个原因,我正在尝试了解如何处理该特定情况并避免 returning null。
有人能解释一下为什么 Entity Framework 会尝试加载这些资源文件吗?是否有办法在不从 aassemblyresolve
中 returning null 的情况下处理这个问题?
我自己想出来了。
解决方法很简单。
当请求 EntityFramework.resources
时,只需 return "already" 从当前 AppDomain
加载 EntityFramework
实例,而不是使用 LoadFrom/Load/LoadFile
方法.
希望这对以后的人有所帮助。
我遇到了一个问题,我似乎无法解释发生了什么。
如果我在我的 DLL(C#) 中使用 AppDomain.AssemblyResolve
事件并且我使用 Entity Framework,我发现它可能会以某种方式尝试加载以下资源文件:
EntityFramework.resources, Version=6.0.0.0, Culture=fr-FR, PublicKeyToken=b77a5c561934e089
及之后
EntityFramework.resources, Version=6.0.0.0, Culture=fr, PublicKeyToken=b77a5c561934e089
我不知道他们可以住在哪里,也不知道他们是否存在于某个地方。 我找不到任何讨论或 Microsoft 网站谈论那个。
可以肯定的是,如果我 return 在我的事件中将该资源设为 null,就像 Microsoft 关于 AssemblyResolve
事件的文档中的状态一样,一切正常,但问题是我希望能够不return null 因为有另一个 DLL(在 .NET 4 之前构建)由外部公司完成并在与我的 DLL 相同的应用程序中使用,它将尝试加载程序集资源文件并抛出异常,这使得应用程序崩溃。
出于这个原因,我正在尝试了解如何处理该特定情况并避免 returning null。
有人能解释一下为什么 Entity Framework 会尝试加载这些资源文件吗?是否有办法在不从 aassemblyresolve
中 returning null 的情况下处理这个问题?
我自己想出来了。
解决方法很简单。
当请求 EntityFramework.resources
时,只需 return "already" 从当前 AppDomain
加载 EntityFramework
实例,而不是使用 LoadFrom/Load/LoadFile
方法.
希望这对以后的人有所帮助。