Mono.CSharp.MethodOrOperator.ApplyAttributeBuilder C# (CSharp) Method

ApplyAttributeBuilder() public method

public ApplyAttributeBuilder ( Attribute a, MethodSpec ctor, byte cdata, Mono.CSharp.PredefinedAttributes pa ) : void
a Attribute
ctor MethodSpec
cdata byte
pa Mono.CSharp.PredefinedAttributes
return void
        public override void ApplyAttributeBuilder(Attribute a, MethodSpec ctor, byte[] cdata, PredefinedAttributes pa)
        {
            if (a.Target == AttributeTargets.ReturnValue) {
                if (return_attributes == null)
                    return_attributes = new ReturnParameter (this, MethodBuilder, Location);

                return_attributes.ApplyAttributeBuilder (a, ctor, cdata, pa);
                return;
            }

            if (a.Type == pa.MethodImpl) {
                is_external_implementation = a.IsInternalCall ();
            }

            if (a.Type == pa.DllImport) {
                const Modifiers extern_static = Modifiers.EXTERN | Modifiers.STATIC;
                if ((ModFlags & extern_static) != extern_static) {
                    Report.Error (601, a.Location, "The DllImport attribute must be specified on a method marked `static' and `extern'");
                }
                is_external_implementation = true;
            }

            //if (a.IsValidSecurityAttribute ()) {
            //    a.ExtractSecurityPermissionSet (ctor, ref declarative_security);
            //    return;
            //}

            if (MethodBuilder != null)
                MethodBuilder.SetCustomAttribute ((ConstructorInfo) ctor.GetMetaInfo (), cdata);
        }