没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:李显亮|2019-12-11 13:37:33.150|阅读 268 次
概述:在大多数情况下,使用动态类型的应用程序在Dotfuscator保护它们之后可以正常工作。这是因为动态类型通常解析为Dotfuscator输入中不包含的程序集中定义的类(因此不进行重命名)。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
C#中的动态类型提供了其他静态类型语言无法提供的灵活性。自C#4.0(.NET 4.5)引入以来,Dotfuscator与希望了解有关混淆类型如何影响动态类型的客户进行了合作。
Dotfuscator(点击下载最新版)是一个.NET的Obfuscator。它提供企业级的应用程序保护,大大降低了盗版、知识产权盗窃和篡改的风险。Dotfuscator的分层混淆、加密、水印、自动失效、防调试、防篡改、报警和防御技术,为世界各地成千上万的应用程序提供保护。
使用动态类型时,编译器会对其成员方法(和/或属性)生成反射调用。这些反射调用使用方法名称的字符串表示形式在运行时调用该方法。混淆后,此字符串必须与方法名称匹配,以避免破坏运行时行为。
在大多数情况下,使用动态类型的应用程序在Dotfuscator保护它们之后可以正常工作。这是因为动态类型通常解析为Dotfuscator输入中不包含的程序集中定义的类(因此不进行重命名)。这包括来自第三方程序集的类型,来自非托管程序集的类型,以及内置类型-int,bool,string。另一方面,如果动态类型解析为在Dotfuscator的输入程序集中定义的类型,则需要设置Dotfuscator重命名排除项以保留那些编译器生成的反射调用。
可参考以下示例:

动态类型解析为MyClass,如我们的代码中所定义。然后,它从MyClass调用MyMethod。编译完此代码后,请注意,编译器将MyMethod的字符串表示形式加载到要通过反射加载的堆栈上。从MSIL:

如果对这些代码进行了混淆而没有重命名排除,我们将遇到运行时错误:
Unhandled Exception: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'a.a' does not contain a definition for 'MyMethod' at CallSite.Target(Closure , CallSite , Object , String ) at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2[T0,T1](CallSite site, T0 arg0, T1 arg1) at a.a() in C:\SampleCode\Dynamic\Dynamic\Program.cs:line 25
为了避免此运行时错误,我从重命名中排除了“ MyMethod”。

如果我们从MyClass加载属性,则可能会应用相同的想法。在示例的其他地方,有一个动态类型可以解析为内置类型。即使在运行时在int和string之间切换,此代码也可以在没有其他Dotfuscator配置的情况下正常运行:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn




在工业自动化与物联网快速发展的背景下,实现从车间级设备到企业级系统的无缝数据交换已成为推动工业4.0的核心挑战。OPC UA作为一项独立于平台的国际标准,凭借其统一的信息建模能力和安全保障机制,提供了理想的解决方案。Unified Automation作为OPC UA领域的专业软件供应商,为全球客户提供了覆盖全场景的工业互联开发框架。
在数字化制造的浪潮中,越来越多的企业开始意识到:信息的“可见性”是实现精益生产和质量提升的关键。
本文主要介绍如何使用LightningChart JS创建一个用于可视化历史和预计收入的JS虚线图,欢迎下载最新版体验!
在现代Web开发中,前后端分离已成为主流趋势,但对于许多以 Java 为核心技术栈的企业来说,如何高效地构建现代化Web应用依然是一个挑战。今天我们为大家介绍的,是由 Vaadin 平台 提供的两种开源全栈Web框架 —— Vaadin Flow 与 Vaadin Hilla。它们自 Vaadin 24.4 起成为平台核心组成部分,都可用于构建现代、交互性强的企业级Web界面。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营