private void Analyze(Type type) { DeclaringType = EmitDeclaringType(type.DeclaringType); Constructors = MethodMetadata.EmitConstructors(type); Methods = MethodMetadata.EmitMethods(type); NestedTypes = EmitNestedTypes(type); ImplementedInterfaces = EmitImplements(type.GetInterfaces()).ToList(); GenericArguments = !type.IsGenericTypeDefinition ? null : EmitGenericArguments(type); Properties = PropertyMetadata.EmitProperties(type); BaseType = EmitExtends(type.BaseType); Fields = EmitFields(type); Type = GetTypeEnum(type); isAnalyzed = true; }
public void EmitOtherCharacteristics(Type type) { TypeKind = GetTypeKind(type); BaseType = EmitExtends(type.BaseType); Modifiers = EmitModifiers(type); IsExternal = false; DeclaringType = EmitDeclaringType(type.DeclaringType); Constructors = MethodMetadata.EmitConstructors(type); Methods = MethodMetadata.EmitMethods(type); NestedTypes = EmitNestedTypes(type); ImplementedInterfaces = EmitImplements(type.GetInterfaces()).ToList(); GenericArguments = !type.IsGenericTypeDefinition ? null : EmitGenericArguments(type); Properties = PropertyMetadata.EmitProperties(type); Fields = EmitFields(type); isExamined = true; }