CSharpSourceEmitter.Utils.FindAttribute C# (CSharp) Method

FindAttribute() public static method

IF an attribute of the specified special type exists in the sequence, return it. Otherwise return null.
public static FindAttribute ( IEnumerable attrs, SpecialAttribute sa ) : ICustomAttribute
attrs IEnumerable
sa SpecialAttribute
return ICustomAttribute
    public static ICustomAttribute FindAttribute(IEnumerable<ICustomAttribute> attrs, SpecialAttribute sa) {
      foreach (var a in attrs)
        if (GetAttributeType(a) == sa)
          return a;
      return null;
    }
  }

Usage Example

Example #1
0
        public virtual void PrintParameterDefinitionModifiers(IParameterDefinition parameterDefinition)
        {
            Contract.Requires(parameterDefinition != null);

            if (parameterDefinition.Index == 0)
            {
                var meth = parameterDefinition.ContainingSignature as IMethodDefinition;
                if (meth != null)
                {
                    if (Utils.FindAttribute(meth.Attributes, SpecialAttribute.Extension) != null)
                    {
                        PrintToken(CSharpToken.This);
                        PrintToken(CSharpToken.Space);
                    }
                }
            }

            foreach (var attribute in SortAttributes(parameterDefinition.Attributes))
            {
                if (Utils.GetAttributeType(attribute) == SpecialAttribute.ParamArray)
                {
                    sourceEmitterOutput.Write("params");
                }
                else
                {
                    this.PrintAttribute(parameterDefinition, attribute, false, null);
                }

                PrintToken(CSharpToken.Space);
            }
            if (parameterDefinition.IsOut && !parameterDefinition.IsIn && parameterDefinition.IsByReference)
            {
                // C# out keyword means [Out] ref (with no [In] allowed)
                PrintKeywordOut();
            }
            else
            {
                if (parameterDefinition.IsIn)
                {
                    PrintPseudoCustomAttribute(parameterDefinition, "System.Runtime.InteropServices.In", null, false, null);
                }
                if (parameterDefinition.IsOut)
                {
                    PrintPseudoCustomAttribute(parameterDefinition, "System.Runtime.InteropServices.Out", null, false, null);
                }
                if (parameterDefinition.IsByReference)
                {
                    PrintKeywordRef();
                }
            }
        }
All Usage Examples Of CSharpSourceEmitter.Utils::FindAttribute