public InterfaceBuilder(Type sourceType, FileBuilder input, Transpilation outputContext) : base(sourceType, input, outputContext) { _typeArguments = sourceType.GetGenericArguments(); _interfaces = SourceType.GetDeclaredInterfaces() .Where(t => !t.Namespace.StartsWith(nameof(System))) .Where(i => input.Namespaces == null || input.Namespaces.Select(n => n.Name).Contains(i.Namespace)); _properties = sourceType.GetMembers(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) .Where(mi => mi.MemberType == MemberTypes.Property) .Cast <PropertyInfo>(); }
public static TypeBuilder Create(Type type, FileBuilder input, Transpilation output) { if (type.IsInterface) { return(new InterfaceBuilder(type, input, output)); } if (type.IsEnum) { return(new EnumBuilder(type, input, output)); } return(new ClassBuilder(type, input, output)); }
public ClassBuilder(Type sourceType, FileBuilder input, Transpilation outputContext) : base(sourceType, input, outputContext) { if (OutputContext.Properties.Initialize) { Instance = CreateInstance(); } _typeArguments = sourceType.GetGenericArguments(); _interfaces = SourceType.GetDeclaredInterfaces() .Where(t => t.Namespace == null || !t.Namespace.StartsWith(nameof(System))) .Where(i => !input.Namespaces.Any() || input.Namespaces.Select(n => n.Name).Contains(i.Namespace)); _properties = sourceType.GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) .Where(p => !p.GetIndexParameters().Any()) .Where(p => !p.GetMethod.IsPrivate) .Where(p => !p.GetMethod.IsAssembly); _attributes = sourceType.GetCustomAttributes(false).Cast <Attribute>().Where(t => t.GetType().IsPublic).ToList(); }
public TypeBuilder(Type sourceType, FileBuilder input, Transpilation outputContext) { SourceType = sourceType; Input = input; OutputContext = outputContext; }
public EnumBuilder(Type sourceType, FileBuilder input, Transpilation outputContext) : base(sourceType, input, outputContext) { }