Mono.CSharp.AbstractPropertyEventMethod.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.Type == pa.CLSCompliant || a.Type == pa.Obsolete || a.Type == pa.Conditional) {
                Report.Error (1667, a.Location,
                    "Attribute `{0}' is not valid on property or event accessors. It is valid on `{1}' declarations only",
                    TypeManager.CSharpName (a.Type), a.GetValidTargets ());
                return;
            }

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

            if (a.Target == AttributeTargets.Method) {
                method_data.MethodBuilder.SetCustomAttribute ((ConstructorInfo) ctor.GetMetaInfo (), cdata);
                return;
            }

            if (a.Target == AttributeTargets.ReturnValue) {
                if (return_attributes == null)
                    return_attributes = new ReturnParameter (this, method_data.MethodBuilder, Location);

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

            ApplyToExtraTarget (a, ctor, cdata, pa);
        }