c# – Dotfuscator中的Reflection Bug的解决方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – Dotfuscator中的Reflection Bug的解决方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1247字,纯文字阅读大概需要2分钟。
内容图文
![c# – Dotfuscator中的Reflection Bug的解决方法?](/upload/InfoBanner/zyjiaocheng/801/6e10dc133819421580b9798df65cd802.jpg)
问候所有,
我正在调用Type.GetProperties(),但是在运行Dotfuscator之后,它返回零项,之前它返回的值大于零.
public class Test
{
public int Number { get; set; }
public void ShowInfo()
{
Type type = this.GetType();
PropertyInfo[] props = type.GetProperties();
Console.WriteLine("type [" + type.Name + "] props count: " + props.Length);
}
}
如果我在Dotfuscator中重命名“Number”属性,那么它可以工作,但不会.但是,我不可能对我的项目中的所有属性执行此操作,因为这会导致可能的错误.
这种方法有没有变通方法?或者甚至我可以使用的其他“免费”混淆应用程序?
我已经尝试在他们的网站上查找提交错误,但我只使用社区版,所以似乎没有那么多的支持.
解决方法:
Dotfuscator在重命名期间自动剥离属性(无论如何都是元数据 – 真正的工作是由自动创建的get / set方法对完成).它还重命名了底层的get / set方法.根据您要执行的操作,您需要排除属性元数据本身或重命名的get / set方法(或可能两者).
如果您需要保持属性元数据不变(例如,只是列出类型中的属性),您可以指示Dotfuscator通过在“重命名排除”选项卡上的树视图中检查属性或使用自定义正则表达式属性来排除重命名属性规则.这将仅排除属性元数据 – 仍将重命名get / set方法.
如果你需要保留get / set方法(例如,因为你试图通过反射来获取或设置属性的值),你可以通过在树视图中展开属性并检查来指示Dotfuscator从重命名中排除这些方法下面的get / set方法,或者使用自定义正则表达式方法规则.
内容总结
以上是互联网集市为您收集整理的c# – Dotfuscator中的Reflection Bug的解决方法?全部内容,希望文章能够帮你解决c# – Dotfuscator中的Reflection Bug的解决方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。