Create Attribute : Attribute Definition « Attribute « C# / CSharp Tutorial






using System;

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
public class AuthorAttribute : System.Attribute
{
    public string Company; 
    public string Name;    

    public AuthorAttribute(string name)
    {
        this.Name = name;
        Company = "";
    }
}


[Author("Name1")]
[Author("Name2", Company = "Ltd.")]
class MainClass
{
    public static void Main()
    {
        Type type = typeof(MainClass);

        object[] attrs = type.GetCustomAttributes(typeof(AuthorAttribute), true);

        foreach (AuthorAttribute a in attrs)
        {
            Console.WriteLine(a.Name + ", " + a.Company);
        }
    }
}
Name2, Ltd.
Name1,








10.4.Attribute Definition
10.4.1.Create Attribute
10.4.2.Attribute with supplement information
10.4.3.Positional vs. Named Parameters
10.4.4.Use a named attribute parameter.
10.4.5.Use a property as a named attribute parameter.
10.4.6.Assembly level attributes don't have to be in the assemblyinfo.cs file, but must be lised outside of any namespae definition.
10.4.7.A custom attribute based on bool value