예제 #1
0
파일: MemberRefs.cs 프로젝트: ostuda/de4dot
        // Renames name, namespace, and generic parameters if needed. Does not rename members.
        public void prepareRename(TypeNameState typeNameState)
        {
            var typeDefinition = TypeDefinition;
            ITypeNameCreator nameCreator = isGlobalType() ?
                    typeNameState.globalTypeNameCreator :
                    typeNameState.internalTypeNameCreator;

            if (OldFullName != "<Module>" && !typeNameState.IsValidName(OldName)) {
                var newBaseType = baseType != null && baseType.typeDef.Renamed ? baseType.typeDef.NewName : null;
                rename(nameCreator.newName(typeDefinition, newBaseType));
            }

            if (typeDefinition.Namespace != "" && !typeNameState.isValidNamespace(typeDefinition.Namespace))
                newNamespace = typeNameState.newNamespace(typeDefinition.Namespace);

            prepareRenameGenericParams(genericParams, typeNameState.IsValidName);
        }
예제 #2
0
        void renameTypeDefinitions()
        {
            Log.v("Renaming obfuscated type definitions");
            typeNameState = new TypeNameState();
            prepareRenameTypeDefinitions(baseTypes);
            typeNameState = null;

            fixClsTypeNames();
            renameTypeDefinitions(nonNestedTypes);

            foreach (var module in modules)
                module.onTypesRenamed();
        }