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()); }
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); }
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); }
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); }