不应重命名哪些类型/命名空间?

时间:2012-07-21 16:44:18

标签: .net reflection clr mono.cecil

我是Cecil的新手,我创建了一个简单的测试。它将所有名称空间/类型重命名为随机字符串。

var assembly = AssemblyDefinition.ReadAssembly(@"C:\somexe.exe");
foreach (var t in assembly.MainModule.Types) {
    t.Namespace = Guid.NewGuid().ToString();
    t.Name = Guid.NewGuid().ToString();               
}

启动可执行文件后运行,但是使用空表单(它是winforms)。

我以为CLR不关心名字?我不该重命名的是什么?或者我做错了什么?

1 个答案:

答案 0 :(得分:2)

许多事情,尤其是winforms,都依赖于反思。反思非常关心名字。这也可能与资源和资源文件不匹配有关。此外,许多属性可能包括类型信息作为字符串,这可能会影响事物。可以序列化(特别是BinaryFormatter)。

但是,如果没有更多的上下文(主要是代码),我们只能猜测。