What are the applications of reflections in C#?


Reflection objects are used for obtaining type information at runtime. The classes that give access to the metadata of a running program are in the System.Reflection namespace.

The following are the applications of reflections −

  • It allows view attribute information at runtime.
  • It allows examining various types in an assembly and instantiate these types.
  • It allows late binding to methods and properties
  • It allows creating new types at runtime and then performs some tasks using those types.

The System.Reflection namespace contains classes that allow you to obtain information about the application and to dynamically add types, values, and objects to the application.

Let us see an example as well.

Below we have set the object of the target class −

System.Reflection.MemberInfo info = typeof(MyClass);

Here is the complete example −

Example

 Live Demo

using System;
using System.Reflection;

[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute : System.Attribute {
   public readonly string Url;
   public string Topic {
      get {
         return topic;
      }

      set {
         topic = value;
      }
   }

   public HelpAttribute(string url) { // url is a positional parameter
      this.Url = url;
   }

private string topic;
}

[HelpAttribute("Information on the class MyClass")]
   class MyClass {
   }

namespace AttributeAppl {
   class Program {
      static void Main(string[] args) {
         System.Reflection.MemberInfo info = typeof(MyClass);
         object[] attributes = info.GetCustomAttributes(true);
         for (int i = 0; i < attributes.Length; i++) {
            System.Console.WriteLine(attributes[i]);
         }
         Console.ReadKey();
      }
   }
}

Output

HelpAttribute

Updated on: 20-Jun-2020

142 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements