Exemplo n.º 1
0
        public void ProcessType(TypeDefinition typeDef)
        {
            var virtuals = new VirtualsDictionary();
            virtuals.CollectVirtualMethods(typeDef);

            var baseType = typeDef.BaseType;
            while (baseType != null) {
                var baseSet = GetSubclasses(baseType);
                baseSet.Add(typeDef);

                ProcessMethodOverrides(virtuals, baseType);

                ProcessInterfaces(virtuals, baseType);

                var baseDef = baseType.Resolve();
                baseType = baseDef.BaseType;
            }

            ProcessInterfaces(virtuals, typeDef);

            foreach (var nestedType in typeDef.NestedTypes) {
                ProcessType(nestedType);
            }
        }