Mega Code Archive

 
Categories / C# Tutorial / Reflection
 

Reflect Attribute

using System; using System.Reflection;     [AttributeUsage( AttributeTargets.Parameter )]     public class ArgumentUsageAttribute : Attribute     {         public ArgumentUsageAttribute( string UsageMsg )         {             this.usageMsg = UsageMsg;         }         protected string usageMsg;         public override string ToString( )         {             return base.ToString( ) + ":" + usageMsg;         }     }     [AttributeUsage( AttributeTargets.Parameter )]     public class ArgumentIDAttribute : Attribute     {         public ArgumentIDAttribute( )         {             this.instanceGUID = Guid.NewGuid( );         }         protected Guid instanceGUID;         public override string ToString( )         {             return base.ToString( ) + "." + instanceGUID.ToString( );         }     }     public class TestClass      {         public void TestMethod(             [ArgumentID]             [ArgumentUsage("message.")]             String[] strArray,             [ArgumentID]             [ArgumentUsage("a test.")]             params String[] strList)         { }     }     class AttributeEqualsDemo      {         static void Main( )          {             Type clsType = typeof( TestClass );             MethodInfo mInfo = clsType.GetMethod("TestMethod");             ParameterInfo[] pInfoArray = mInfo.GetParameters();             if (pInfoArray != null)              {                 ArgumentUsageAttribute arrayUsageAttr1 = (ArgumentUsageAttribute)                     Attribute.GetCustomAttribute( pInfoArray[0],                          typeof(ArgumentUsageAttribute) );                 ArgumentUsageAttribute arrayUsageAttr2 = (ArgumentUsageAttribute)                     Attribute.GetCustomAttribute( pInfoArray[0],                          typeof(ArgumentUsageAttribute) );                 Console.WriteLine( "   \"{0}\" == \n   \"{1}\" ? {2}",                     arrayUsageAttr1.ToString(), arrayUsageAttr2.ToString(),                      arrayUsageAttr1.Equals( arrayUsageAttr2 ) );             }         }     }