Assembly.ReflectionOnlyLoadFrom 不起作用

2024-01-10

我有一个集会Library1.dll其中包含一些接口,这些接口被序列化为字节数组到数据库中。由于某些原因,我们必须更改接口属性和定义。所以现在我正在编写一个迁移实用程序。所以我有两个版本Library1.dll,在我的实用程序中,我创建了一个文件夹,用于存储新版本的Library1.dll。该实用程序还引用了Library1.dll因此在 bin 文件夹中包含Library1.dll但这个dll是在旧版本上编译的。我的新版本Library1.dll存储在我传递到的私有路径中Assembly.ReflectionOnlyLoadFrom函数实例化,因此GetTypes在加载的程序集上,这进一步使我能够进行数据转换。

但我总是得到ReflectionTypeLoadException当尝试加载时Library1.dll来自私人路径。

请大家帮忙!任何帮助,将不胜感激。我真的被困住了。

谢谢, 股份公司


如果您的库引用了另一个 dll,GetTypes当它遇到使用外部类型的类型时将会失败。与普通程序集加载不同,ReflectionOnly 程序集加载不会解析依赖关系。您可以订阅AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve并根据需要加载依赖项,或者您可以预加载它们。

这是我为此使用的代码:

var assembly = Assembly.ReflectionOnlyLoadFrom(assemblyPath);
foreach (var assemblyName in assembly.GetReferencedAssemblies()) {
  try {
    Assembly.ReflectionOnlyLoad(assemblyName.FullName);
  } catch {
    Assembly.ReflectionOnlyLoadFrom(Path.Combine(Path.GetDirectoryName(assemblyPath), assemblyName.Name + ".dll"));
  }
}

这将尝试首先按全名加载仅反射加载的程序集的所有依赖项,然后按路径加载(假设依赖项与加载的程序集位于同一目录中)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Assembly.ReflectionOnlyLoadFrom 不起作用 的相关文章

  • 如何保证对象只有一个线程

    我有以下代码 class Service public void start creates thread which creates window and goes to message loop void stop sends WM C
  • 我如何理解这个 C 类型声明?

    double bar int double double double double 在查看讲座幻灯片时 我发现了留给学生的练习 用简单的英语来说 什么是类型bar在这个 C 声明中 Please帮助我解决这个问题 我什至不知道从哪里开始
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • ASP.NET Web API 客户端 ProgressMessageHandler Post 任务卡在 WinForm 应用程序中

    我在用着HttpClient and ProgressMessageHandler来自MS ASP NET Web API 客户端库 http nuget org packages Microsoft AspNet WebApi Clien
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 防止 boost::asio::io_context 在空轮询调用时停止

    此代码调用发布的句柄 boost asio io context ioc boost asio post ioc std cout lt lt lol lt lt std endl ioc poll 而这并没有 boost asio io
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • 为什么这个没有特殊字符的正则表达式会匹配更长的字符串?

    我正在使用此方法来尝试查找匹配项 例如 Regex Match A2 TS OIL TS OIL RegexOptions IgnoreCase Success 我得到了真实的结果 我很困惑 我认为这应该返回 false 因为模式中没有特殊
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 如何在标准 WPF ListView 中启用 UI 虚拟化

    我正在使用 NET 4 5 VS2012 并且我有一个 ListView 看起来像这样
  • 每个租户的唯一用户名和电子邮件

    我正在使用以下代码编写多租户应用程序ASP NET Core 2 1 我想覆盖默认的与用户创建相关的验证机制 目前我无法创建多个具有相同的用户UserName My ApplicationUser模型有一个名为TenantID 我想要实现的
  • 将标量添加到特征矩阵(向量)

    我刚刚开始使用 Eigen 库 无法理解如何向所有矩阵成员添加标量值 假设我有一个矩阵 Eigen Matrix3Xf mtx Eigen Matrix3Xf Ones 3 4 mtx mtx 1 main cxx 104 13 error
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 我可以让 ungetc 取消阻止阻塞的 fgetc 调用吗?

    我想在收到 SIGUSR1 后使用 ungetc 将 A 字符重新填充到标准输入中 想象一下我有充分的理由这样做 调用 foo 时 stdin 中的阻塞读取不会被收到信号时的 ungetc 调用中断 虽然我没想到它会按原样工作 但我想知道是
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 更改 Windows Phone 系统托盘颜色

    有没有办法将 Windows Phone 上的系统托盘颜色从黑色更改为白色 我的应用程序有白色背景 所以我希望系统托盘也是白色的 您可以在页面 XAML 中执行此操作
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959

随机推荐

  • Python 和 F 字符串解释

    在下面的 f 字符串中 print It s fleece was white as format snow Is snow 一个变量 我对它到底会被判定为什么感到困惑 No snow 是一个字符串文字 一个产生字符串值的表达式 snow将
  • 如何在 Flutter 中导航时更改默认选项卡?

    我的 TabBar 页面有以下代码 class HomePage extends StatefulWidget static String tag home page override homepage createState gt new
  • 从 HTML Canvas 元素生成图像数据

    从 HTML canvas 元素的内容生成图像数据的最佳方法是什么 我想创建图像数据 以便可以将其传输到服务器 用户不需要能够直接保存到文件 图像数据应采用常见格式 例如 PNG 或 JPEG 在多个浏览器中正常工作的解决方案是首选 但如果
  • Jenkins 从属代理启动失败

    当使用 从从属计算机上的浏览器启动代理 选项从从属计算机启动从属代理时 它会失败 它会打开一个 Slave agent jnlp 窗口 当使用 Java Web Start Launcher 打开时 它会弹出启动应用程序 然后另一个弹出窗口
  • CInt 不会一致地舍入 Double 值 - 如何删除小数部分?

    我偶然发现了一个问题CInt https msdn microsoft com en us library s2dy91zy aspx并将双精度数转换为整数 问题如下 CInt 10 5 Result is 10 CInt 10 51 Re
  • 设置更新后如何重新启动此壁纸引擎?

    我正在创建动态壁纸 并使用本教程作为起点 http code tutsplus com tutorials create a live wallpaper on android using an animated gif cms 23088
  • 如何在 SSRS 中导出不带标题的 csv

    有没有办法关闭 CSV 导出的标题just oneSSRS 报告 我使用的是 Report Builder 3 并且从报告中删除了标题 但是当导出到 CSV 时 它们又回来了 我找不到任何地方可以关闭它们 我见过这个问题 https sta
  • 现在删除 .tfignore 文件中已签入的文件

    我有一位开发人员一直在检查他的 TFS 分支的所有信息 现在我已经掌握了他的分支 我注意到他没有 tfignore 文件 并且 bin 和包文件夹和文件目前都在源代码管理中 我已经实现了一个 tfignore 文件来在将来排除这些文件 但也
  • 鼠标光标根据事件变化

    我有一个要发送的 ajax 请求 当请求开始时 我有 document body style cursor wait 这会立即将光标的外观更改为旋转的圆圈 当请求结束时 我有 document body style cursor defau
  • React Native FlatList - 可变列

    我正在开发一个无限滚动的产品列表 其中包含不同类型的产品 产品可以是特色产品 也可以是非特色产品 当产品展示时 我们的产品卡设计会占据手机的整个宽度 否则设计需要 2 列行 数据看起来像这样 type featured product na
  • 图像的鼠标按下、鼠标移动和鼠标松开事件?

    如何用鼠标移动图像 onmousedown and onmousemove处理的事件是否正确
  • 立方到等距柱状投影算法

    我有一个定义周围环境的立方体贴图纹理 但是我需要将其传递给仅适用于纬度 经度贴图的程序 我真的不知道如何进行翻译 这里有什么帮助吗 换句话说 我需要从这里出发 对此 我认为该图像在 x 轴上有一个额外的 90 旋转 update 我得到了投
  • Yii2 创建一个没有模型的表单

    我想知道如何在 Yii2 框架中创建一个没有模型的表单 因为我正在创建一个 mailchimp 注册表单 因此不需要模型 下面的代码会生成一个表单 但是正如您所看到的 它使用了一个模型 我是否仍然使用 activeform 如何删除 mod
  • 视频静音/取消静音按钮 javaScript

    JavaScript 初学者看这里 我正在尝试用 javaScript 为学校项目制作一个视频播放器 但我的静音按钮遇到了问题 我希望该按钮在单击时使视频静音 并在再次按下该按钮时取消静音 到目前为止 我只能将视频静音并保持静音 这是我当前
  • 用于提取括号之间的 3 位数字的正则表达式

    我的字符串是 Frequency FA ID VerifiedFA0 FAID5 125 FA1 FAID7 175 FA2 FAID1 476 我尝试创建的正则表达式应该提取这些数字 125 175 476 我通过查看做到了这个例子 ht
  • 垂直对齐 div 元素中的图像?

    我有一个 div 元素 其高度设置为em 其宽度我设置为百分比 里面有一张图片 它的宽度以百分比表示 83 但是 如果我的分辨率使 div 元素开始变得有点窄 则图像也会变窄 但图像不会占据整个 div 应有的 而是会变小并出现在div 的
  • 如何使用 VB6 获取硬件信息,例如 CPU 名称、总 RAM 等?

    标题几乎说明了一切 我需要使用 VB6 获取一些硬件信息 例如 CPU 信息和总 RAM 理想情况下 它会为 CPU 返回类似以下内容 英特尔酷睿 2 四核 Q8500 2 66 GHz 对于 RAM 来说 有些简单的东西 比如计算机总共拥
  • Laravel 使用请求获取 POSTed 数据

    在 Laravel 中如何获取请求正文 我正在尝试 request gt get data 但得到空结果 我正在向控制器中的存储功能发出 POST 请求 但无法获取 POST 数据 public function store Request
  • Golang:即使数据库关闭,第二次 Ping 也会成功

    我遇到了一个有趣的问题 即 db Ping 不会返回错误 即使数据库自第一次尝试以来已被终止 源代码如下 import database sql fmt log time github com go sql driver mysql typ
  • Assembly.ReflectionOnlyLoadFrom 不起作用

    我有一个集会Library1 dll其中包含一些接口 这些接口被序列化为字节数组到数据库中 由于某些原因 我们必须更改接口属性和定义 所以现在我正在编写一个迁移实用程序 所以我有两个版本Library1 dll 在我的实用程序中 我创建了一