3 // System.Reflection.Emit/CustomAttributeBuilder.cs
6 // Paolo Molaro (lupus@ximian.com)
8 // (C) 2001 Ximian, Inc. http://www.ximian.com
12 using System.Reflection;
13 using System.Reflection.Emit;
14 using System.Runtime.CompilerServices;
16 namespace System.Reflection.Emit {
17 public class CustomAttributeBuilder {
21 [MethodImplAttribute(MethodImplOptions.InternalCall)]
22 static extern byte[] GetBlob(ConstructorInfo con, object[] constructorArgs, PropertyInfo[] namedProperties, object[] propertyValues, FieldInfo[] namedFields, object[] fieldValues);
24 internal CustomAttributeBuilder( ConstructorInfo con, byte[] cdata) {
26 data = (byte[])cdata.Clone ();
27 /* should we check that the user supplied data is correct? */
30 public CustomAttributeBuilder( ConstructorInfo con, object[] constructorArgs)
31 : this (con, constructorArgs, null, null, null, null) {
33 public CustomAttributeBuilder( ConstructorInfo con, object[] constructorArgs, FieldInfo[] namedFields, object[] fieldValues)
34 : this (con, constructorArgs, null, null, namedFields, fieldValues) {
36 public CustomAttributeBuilder( ConstructorInfo con, object[] constructorArgs, PropertyInfo[] namedProperties, object[] propertyValues)
37 : this (con, constructorArgs, namedProperties, propertyValues, null, null) {
39 public CustomAttributeBuilder( ConstructorInfo con, object[] constructorArgs, PropertyInfo[] namedProperties, object[] propertyValues, FieldInfo[] namedFields, object[] fieldValues) {
41 data = GetBlob (con, constructorArgs, namedProperties, propertyValues, namedFields, fieldValues);