コード例 #1
0
        public void prepareRenameTypes(TypeRenamerState state)
        {
            var checker = NameChecker;

            if (newNamespace == null && oldNamespace != "")
            {
                if (type.TypeDefinition.IsNested)
                {
                    newNamespace = "";
                }
                else if (!checker.isValidNamespaceName(oldNamespace))
                {
                    newNamespace = state.createNamespace(this.type.TypeDefinition, oldNamespace);
                }
            }

            string origClassName = null;

            if (isWinFormsClass())
            {
                origClassName = findWindowsFormsClassName(type);
            }
            if (isModuleType())
            {
                if (oldNamespace != "")
                {
                    newNamespace = "";
                }
                rename("<Module>");
            }
            else if (!checker.isValidTypeName(oldName))
            {
                if (origClassName != null && checker.isValidTypeName(origClassName))
                {
                    rename(state.getTypeName(oldName, origClassName));
                }
                else
                {
                    ITypeNameCreator nameCreator = type.isGlobalType() ?
                                                   state.globalTypeNameCreator :
                                                   state.internalTypeNameCreator;
                    string   newBaseType = null;
                    TypeInfo baseInfo    = getBase();
                    if (baseInfo != null && baseInfo.renamed)
                    {
                        newBaseType = baseInfo.newName;
                    }
                    rename(nameCreator.create(type.TypeDefinition, newBaseType));
                }
            }

            prepareRenameGenericParams(type.GenericParams, checker);
        }
コード例 #2
0
ファイル: TypeInfo.cs プロジェクト: huliang/de4dot
        public void prepareRenameTypes(TypeRenamerState state)
        {
            var checker = NameChecker;

            if (newNamespace == null && oldNamespace != "") {
                if (type.TypeDefinition.IsNested)
                    newNamespace = "";
                else if (!checker.isValidNamespaceName(oldNamespace))
                    newNamespace = state.createNamespace(this.type.TypeDefinition, oldNamespace);
            }

            string origClassName = null;
            if (isWinFormsClass())
                origClassName = findWindowsFormsClassName(type);
            if (isModuleType()) {
                if (oldNamespace != "")
                    newNamespace = "";
                rename("<Module>");
            }
            else if (!checker.isValidTypeName(oldName)) {
                if (origClassName != null && checker.isValidTypeName(origClassName))
                    rename(state.getTypeName(oldName, origClassName));
                else {
                    ITypeNameCreator nameCreator = type.isGlobalType() ?
                                            state.globalTypeNameCreator :
                                            state.internalTypeNameCreator;
                    string newBaseType = null;
                    TypeInfo baseInfo = getBase();
                    if (baseInfo != null && baseInfo.renamed)
                        newBaseType = baseInfo.newName;
                    rename(nameCreator.create(type.TypeDefinition, newBaseType));
                }
            }

            prepareRenameGenericParams(type.GenericParams, checker);
        }