.Net Native Image 加强保护的模式在 ORM、 AOP 中的问题

简介: 前面我们讨论了 ngen 生成的 ni 文件的还原,以及它的加强保护方式阻止还原。 今天我在测试一个 ORM 程序时发现, 用加强保护模式的 ni 文件运行会出现 BadImageFormat 的 异常。

前面我们讨论了 ngen 生成的 ni 文件的还原,以及它的加强保护方式阻止还原。
今天我在测试一个 ORM 程序时发现, 用加强保护模式的 ni 文件运行会出现
BadImageFormat 的 异常。

我用ORM程序测试 HVM 核心,顺便也测试了一下加强保护模式的 ni 文件 。

在前文 .Net Native Image 还原的原理和加强保护的方法 中提到了可以通过擦除原始ILCode来加强 ni 文件的保护,让其无法还原。

我用这种模式处理了 这个ORM 程序,在进行数据操作时出现了 BadImageFormat 的异常。

然后我又用普通模式(不擦除ILCode)生成了一个 ni 文件,运行一切正常。

初步估计问题应该出在 ORM 模块,程序界面操作都没有出问题,就在数据库操作是出错。

具体原因还不太清楚,ORM 最大的特性是大量使用了反射,不知道是不是反射的原因造成的?

我之前曾测试过一些简单的使用反射的程序,也没有出现过这样的问题。

估计 AOP 的程序 也会有这样的问题...

感兴趣的朋友可以自己试试.

目录
相关文章
|
6月前
|
SQL 开发框架 数据可视化
企业应用开发中.NET EF常用哪种模式?
企业应用开发中.NET EF常用哪种模式?
106 5
|
6月前
|
SQL 开发框架 数据可视化
企业应用开发中.NET EF常用哪种模式?
企业应用开发中.NET EF常用哪种模式?
|
3月前
|
SQL 开发框架 数据库
".NET开发者的超能力:AgileEAS.NET ORM带你穿越数据库的迷宫,让数据操作变得轻松又神奇!"
【8月更文挑战第16天】AgileEAS.NET是面向.NET平台的企业应用开发框架,核心功能包括数据关系映射(ORM),允许以面向对象方式操作数据库,无需编写复杂SQL。通过继承`AgileEAS.Data.Entity`创建实体类对应数据库表,利用ORM简化数据访问层编码。支持基本的CRUD操作及复杂查询如条件筛选、排序和分页,并可通过导航属性实现多表关联。此外,提供了事务管理功能确保数据一致性。AgileEAS.NET的ORM简化了数据库操作,提升了开发效率和代码可维护性。
51 5
|
3月前
|
数据库 开发者
.NET 异步编程之谜:async/await 模式究竟隐藏着怎样的神奇力量?
【8月更文挑战第28天】在当今注重效率和响应性的软件开发领域,.NET 的 async/await 模式如同得力助手,简化异步代码编写,使代码更易理解和维护。通过后台执行耗时操作,如网络请求和数据库查询,避免阻塞主线程,显著提升系统响应性。此模式不仅适用于网络请求,还广泛应用于数据库操作和文件读写。合理使用 async/await 可大幅优化性能,但需注意避免过度使用、正确处理调用链及异常,以确保系统稳定性和高效性。深入探索 async/await,助您构建更出色的应用程序。
49 0
|
28天前
|
机器学习/深度学习 编解码 算法
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
《nnU-Net: 自适应框架用于基于U-Net的医学图像分割》是一篇2018年的论文,发表在Nature上。该研究提出了一种自适应的医学图像分割框架nnU-Net,能够自动调整模型的超参数以适应不同的数据集。通过2D和3D U-Net及级联U-Net的组合,nnU-Net在10个医学分割数据集上取得了卓越的性能,无需手动调整。该方法强调数据增强、预处理和训练策略等技巧,为医学图像分割提供了一个强大的解决方案。
59 0
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
|
25天前
|
网络协议 大数据 网络架构
桥接模式和NET模式的区别
桥接模式和NET模式的区别
31 0
|
28天前
|
SQL 开发框架 关系型数据库
值得推荐的.NET ORM框架
值得推荐的.NET ORM框架
|
3月前
|
敏捷开发 设计模式 开发者
【揭秘终极利器】AgileEAS.NET:服务定位器模式的魔法,如何让企业级软件开发瞬间提速?揭秘背后的技术奥秘与实战指南!
【8月更文挑战第16天】AgileEAS.NET是基于DotNet的企业级敏捷开发平台,其服务定位器模式助力构建高度解耦系统。通过全局服务目录动态查找服务,避免硬编码依赖。在AgileEAS.NET中,服务定位器以静态类形式封装服务注册与检索功能。示例展示了如何注册与获取服务实例,如在`UserController`中通过服务定位器使用`IUserService`。此模式整合到框架生命周期管理,便于各处获取服务实例,提升开发效率。然而,应适度使用并考虑依赖注入容器以增强代码可维护性和可测试性。
69 4
|
3月前
|
开发框架 监控 .NET