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.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;
            }
        }
Exemple #3
0
        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;
            }
        }