public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { Universe u = this.ModuleBuilder.universe; Type type = customBuilder.Constructor.DeclaringType; if (type == u.System_Runtime_InteropServices_DllImportAttribute) { attributes |= MethodAttributes.PinvokeImpl; SetDllImportPseudoCustomAttribute(customBuilder.DecodeBlob(this.Module.Assembly)); } else if (type == u.System_Runtime_CompilerServices_MethodImplAttribute) { SetMethodImplAttribute(customBuilder.DecodeBlob(this.Module.Assembly)); } else if (type == u.System_Runtime_InteropServices_PreserveSigAttribute) { implFlags |= MethodImplAttributes.PreserveSig; } else if (type == u.System_Runtime_CompilerServices_SpecialNameAttribute) { attributes |= MethodAttributes.SpecialName; } else { if (type == u.System_Security_SuppressUnmanagedCodeSecurityAttribute) { attributes |= MethodAttributes.HasSecurity; } this.ModuleBuilder.SetCustomAttribute(pseudoToken, customBuilder); } }
public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { switch (customBuilder.KnownCA) { case KnownCA.DllImportAttribute: SetDllImportPseudoCustomAttribute(customBuilder.DecodeBlob(this.Module.Assembly)); attributes |= MethodAttributes.PinvokeImpl; break; case KnownCA.MethodImplAttribute: SetMethodImplAttribute(customBuilder.DecodeBlob(this.Module.Assembly)); break; case KnownCA.PreserveSigAttribute: implFlags |= MethodImplAttributes.PreserveSig; break; case KnownCA.SpecialNameAttribute: attributes |= MethodAttributes.SpecialName; break; case KnownCA.SuppressUnmanagedCodeSecurityAttribute: attributes |= MethodAttributes.HasSecurity; goto default; default: this.ModuleBuilder.SetCustomAttribute(pseudoToken, customBuilder); break; } }
public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { switch (customBuilder.KnownCA) { case KnownCA.StructLayoutAttribute: SetStructLayoutPseudoCustomAttribute(customBuilder.DecodeBlob(this.Assembly)); break; case KnownCA.SerializableAttribute: attribs |= TypeAttributes.Serializable; break; case KnownCA.ComImportAttribute: attribs |= TypeAttributes.Import; break; case KnownCA.SpecialNameAttribute: attribs |= TypeAttributes.SpecialName; break; case KnownCA.SuppressUnmanagedCodeSecurityAttribute: attribs |= TypeAttributes.HasSecurity; goto default; default: this.ModuleBuilder.SetCustomAttribute(token, customBuilder); break; } }
public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { Universe u = this.ModuleBuilder.universe; Type type = customBuilder.Constructor.DeclaringType; if (type == u.System_Runtime_InteropServices_StructLayoutAttribute) { SetStructLayoutPseudoCustomAttribute(customBuilder.DecodeBlob(this.Assembly)); } else if (type == u.System_SerializableAttribute) { attribs |= TypeAttributes.Serializable; } else if (type == u.System_Runtime_InteropServices_ComImportAttribute) { attribs |= TypeAttributes.Import; } else if (type == u.System_Runtime_CompilerServices_SpecialNameAttribute) { attribs |= TypeAttributes.SpecialName; } else { if (type == u.System_Security_SuppressUnmanagedCodeSecurityAttribute) { attribs |= TypeAttributes.HasSecurity; } this.ModuleBuilder.SetCustomAttribute(token, customBuilder); } }
public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { Universe u = this.Module.universe; if (customBuilder.Constructor.DeclaringType == u.System_Runtime_InteropServices_FieldOffsetAttribute) { customBuilder = customBuilder.DecodeBlob(this.Module.Assembly); SetOffset((int)customBuilder.GetConstructorArgument(0)); } else if (customBuilder.Constructor.DeclaringType == u.System_Runtime_InteropServices_MarshalAsAttribute) { MarshalSpec.SetMarshalAsAttribute(typeBuilder.ModuleBuilder, pseudoToken, customBuilder); attribs |= FieldAttributes.HasFieldMarshal; } else if (customBuilder.Constructor.DeclaringType == u.System_NonSerializedAttribute) { attribs |= FieldAttributes.NotSerialized; } else if (customBuilder.Constructor.DeclaringType == u.System_Runtime_CompilerServices_SpecialNameAttribute) { attribs |= FieldAttributes.SpecialName; } else { typeBuilder.ModuleBuilder.SetCustomAttribute(pseudoToken, customBuilder); } }
public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { switch (customBuilder.KnownCA) { case KnownCA.FieldOffsetAttribute: SetOffset((int)customBuilder.DecodeBlob(this.Module.Assembly).GetConstructorArgument(0)); break; case KnownCA.MarshalAsAttribute: FieldMarshal.SetMarshalAsAttribute(typeBuilder.ModuleBuilder, pseudoToken, customBuilder); attribs |= FieldAttributes.HasFieldMarshal; break; case KnownCA.NonSerializedAttribute: attribs |= FieldAttributes.NotSerialized; break; case KnownCA.SpecialNameAttribute: attribs |= FieldAttributes.SpecialName; break; default: typeBuilder.ModuleBuilder.SetCustomAttribute(pseudoToken, customBuilder); break; } }