1
저는 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이 이름을 신경 쓰지 않는다고 생각합니까? 내가 이름을 바꾸면 안되는게 뭐야? 아니면 뭔가 잘못하고 있는거야?
나는 그것이 자원이라고 생각한다. 자원 이름은 namespace.class 이름과 일치해야합니다. 그러면 속성은 어떻습니까? 나는 그 (것)들을 개명하면 안된다? – blez
@blez 사실, 나는 속성 내부의 값을 의미했다. TypeDescriptorAttribute 등과 같은 많은 것들은 타입 정보를 리터럴 문자열로 저장할 수 있습니다 (typeof를 통하는 대신에). 그 리터럴 문자열이 더 이상 이전 이름과 일치하지 않으면 ... –