我想混淆我的应用程序。但是,我在其中使用了很多反射,尤其是Type.GetMethod
,以便使用动态类型创建泛型方法。
例如:
private void button1_Click(object sender, EventArgs e)
{
MethodInfo info = this.GetType().GetMethod("ShowInMessageBox", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
MethodInfo generic = info.MakeGenericMethod(typeof(int));
String result = (String)generic.Invoke(this, new Object[] { 1234 });
MessageBox.Show(result);
}
[Obfuscation(Exclude =true)]
private String ShowInMessageBox<T>(T item)
{
return item.ToString();
}
但是, ConfuserEx 和 Dotfuscator 都不会更改GetMethod("ShowInMessageBox")
中的字符串,因此我的应用程序在混淆后将无法正常工作。
除了使用[Obfuscation(Exclude =true)]
之外,还有另一种方法可以成功地模糊反射方法吗?