Exemplo n.º 1
0
        public Type Build(AssemblyBuilderHelper assemblyBuilder)
        {
            _context  = new BuildContext(_sourceType);
            _builders = new AbstractTypeBuilderList();

            _context.TypeBuilders    = GetBuilderList(_context.Type);
            _context.AssemblyBuilder = assemblyBuilder;

            _builders.AddRange(_context.TypeBuilders);
            _builders.Add(_defaultTypeBuilder);

            return(Build());
        }
Exemplo n.º 2
0
        private static AbstractTypeBuilderList GetBuilders(object[] attributes, object target)
        {
            var builders = new AbstractTypeBuilderList(attributes.Length);

            foreach (AbstractTypeBuilderAttribute attr in attributes)
            {
                var builder = attr.TypeBuilder;

                builder.TargetElement = target;
                builders.Add(builder);
            }

            return(builders);
        }
Exemplo n.º 3
0
        private static AbstractTypeBuilderList GetBuilderList(TypeHelper type)
        {
            var attrs    = type.GetAttributes(typeof(AbstractTypeBuilderAttribute));
            var builders = new AbstractTypeBuilderList(attrs.Length);

            foreach (AbstractTypeBuilderAttribute attr in attrs)
            {
                var builder = attr.TypeBuilder;

                if (builder != null)
                {
                    builder.TargetElement = type;
                    builders.Add(builder);
                }
            }

            return(builders);
        }
Exemplo n.º 4
0
        private static AbstractTypeBuilderList GetBuilders(ParameterInfo[] parameters)
        {
            var builders = new AbstractTypeBuilderList();

            foreach (var pi in parameters)
            {
                var attributes = pi.GetCustomAttributes(typeof(AbstractTypeBuilderAttribute), true);

                foreach (AbstractTypeBuilderAttribute attr in attributes)
                {
                    var builder = attr.TypeBuilder;

                    builder.TargetElement = pi;
                    builders.Add(builder);
                }
            }

            return(builders);
        }