COM +访问的comvisible程序集的实际加载上下文是什么?

时间:2014-03-04 14:04:56

标签: c# .net .net-assembly com+ comvisible

我需要在COM +激活中清除一些关于.Net加载上下文的概念。

这是我的情景:

  • 程序集是一个带有一些ComVisible类的DLL
  • 装配未签名
  • 程序集及其自定义配置文件位于C:\ ProgramFiles \ MyApp \
  • 装配已在regasm注册。
  • 生成的tlb拖放到COM +服务器应用程序

我的程序集使用以下行加载其配置:

exeConfigurationFileMap = new ExeConfigurationFileMap { ExeConfigFilename = Path.Combine("C:\ProgramFiles\MyApp", "MyAssembly.dll.config") };
configuration = ConfigurationManager.OpenMappedExeConfiguration(exeConfigurationFileMap, ConfigurationUserLevel.None);

我的配置文件包含一些自定义部分,这些类在程序集内声明。配置文件以这种方式声明自定义部分:

<configSections>
    <section name="FooSection" type="MyAssembly.FooSection, MyAssembly" allowLocation="false" allowDefinition="Everywhere" />
    ...

事实是:当远程用户调用我的ComVisible类的实例时,应用程序启动,但自定义部分的类无法解析(如预期的那样)。

所以我的问题是:

  • 当dllhost.exe激活时,MyAssembly.dll的加载上下文是什么?我想LoadFrom上下文。
  • 当section type =“...”请求时,MyAssembly.dll的加载上下文是什么?我想默认加载上下文。
  • 通过COM +运行时,哪个是appdomain根目录?我想c:\ windows \ system32 - c:\ windows \ syswow64。
  • 我的假设是正确的?

编辑:清理完之前的测试后,我会收到错误(正如预期的那样)。

0 个答案:

没有答案