Esempio n. 1
0
 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;
 }
Esempio n. 5
0
 public EnumBuilder(Type sourceType, FileBuilder input, Transpilation outputContext)
     : base(sourceType, input, outputContext)
 {
 }