示例#1
0
 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;
 }
示例#2
0
 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;
 }