SlideShare a Scribd company logo
Interactive Session on Reflection
In C Sharp
                                    Classification: Restricted   2012-04-19
Reflection


•Reflection is the Feature that enables you to obtain the information about a type.
•All .NET assemblies have metadata information stored about the types defined in
modules. This metadata information can be accessed by mechanism called as
“Reflection”.
•Reflection is the ability of a managed code to read its own metadata for the purpose of
finding assemblies, modules and type information at runtime. In other words, reflection
provides objects that encapsulate assemblies, modules and types. A program reflects
on itself by extracting metadata from its assembly and using that metadata either to
inform the user or to modify its own behavior. Reflection is similar to C++ RTTI (Runtime
Type Information), but much broader in scope and capability




2   Classification: Restricted   2012-04-19
Reflection
Name Space to be used System.reflection

• When writing a C# code that uses reflection, the coder can use the type of operator
  to get the object's type or use the GetType() method to get the type of the current
  instance.
• Using reflection services, we are able to programmatically obtain the same
  metadata information displayed by ildasm.exe.




3   Classification: Restricted   2012-04-19
Example of Reflection

• Using GetType to obtain type information:
C# Code :-


• int i = 42;
System.Type type = i.GetType();
System.Console.WriteLine(type);


• Output of this Code will be
System.Int32




4   Classification: Restricted   2012-04-19
When use Reflection



• If we want to know assembly information at run time ,then we use reflection.
  Reflection are used for data binding in .NET Framework. It is also used for testing in
  .NET Framework.




5   Classification: Restricted   2012-04-19
Example

• In the below example reflection is used to obtain the full name of a loaded
  assembly:
CODE
System.Reflection.Assembly o = System.Reflection.Assembly.Load("mscorlib.dll");
System.Console.WriteLine(o.GetName());


Output of the above code
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089




6   Classification: Restricted   2012-04-19
So Reflection allows you to

• Enumerate the members of a type
• Instantiate a new object
• Execute the members of an object
• Find out information about a type
• Find out information about an assembly
• Inspect the custom attributes applied to a type
• Create and compile a new assembly




7   Classification: Restricted   2012-04-19
System.Reflection Namespace




8   Classification: Restricted   2012-04-19
The System.Type Class

• The System.Type class defines a number of members that can be used to examine
  a type’s metadata, a great number of which return types from the System.Reflection
  namespace.
• Eg: Type.GetMethods() returns an array of MethodInfo types, Type.GetFields()
  returns an array of FieldInfo types.




9   Classification: Restricted   2012-04-19
Members of System.Type
• IsAbstract
• IsArray
• IsClass
• IsCOMObject
• IsEnum
• IsInterface
• IsPrimitive
• IsNestedPrivate
• IsNestedPublic
• IsSealed
• IsValueType


• These properties allow you to discover a number of basic traits about the Type you are referring to
  (e.g., if it is an abstract method, an array, a nested class, and so forth).




10   Classification: Restricted   2012-04-19
Methods
• GetConstructors()
• GetEvents()
• GetFields()
• GetInterfaces()
• GetMembers()
• GetMethods().
• GetNestedTypes()
• GetProperties()
• These methods allow you to obtain an array representing the items (interface, method,
  property, etc.) you are interested in. Each method returns a related array (e.g.,
  GetFields() returns a FieldInfo array, GetMethods() returns a MethodInfo array, etc.).
  Each of these methods has a singular form (e.g., GetMethod(), GetProperty(), etc.) that
  allows you to retrieve a specific item by name, rather than an array of all related items.



11   Classification: Restricted   2012-04-19
Methods

• GetType()
        To obtain type information, you may call the static GetType() member of the
        System.Type class and specify the fully qualified string name of the type to
        examine.
        Compile-time knowledge of the type to be extracted from metadata is not
        required.




12   Classification: Restricted   2012-04-19
GET TYPE METHOD

• The Type.GetType() method has overloads to allow you to specify two Boolean
  parameters, one of which controls whether an exception should be thrown if the
  type cannot be found, and the other of which establishes the case sensitivity of the
  string.
• Obtaining type information using the static Type.GetType() method:
•                  Type t = Type.GetType("CarLibrary.SportsCar", false, true);




13   Classification: Restricted   2012-04-19
Reflecting on Methods
• Type.GetMethods() returns an array of System.Reflection.MethodInfo types.


// Display method names of type.
public static void ListMethods(Type t)
{
     Console.WriteLine("Methods");
     MethodInfo[] mi = t.GetMethods();
     foreach(MethodInfo m in mi)
                    Console.WriteLine("->{0}", m.Name);
     Console.WriteLine("");
}



14    Classification: Restricted   2012-04-19
Reflecting on Fields

• Type.GetFields() returns an array of System.Reflection.FieldInfo types.


// Display field names of type
public static void ListFields(Type t)
{
     Console.WriteLine("Fields");
     FieldInfo[] fi = t.GetFields();
     foreach(FieldInfo field in fi)
                    Console.WriteLine("->{0}", field.Name);
     Console.WriteLine("");
}



15    Classification: Restricted   2012-04-19
Reflecting on Properties
• Type. GetProperties() returns an array of System.Reflection. PropertyInfo types.


// Display property names of type.
public static void ListProps(Type t)
{
     Console.WriteLine("***** Properties *****");
     PropertyInfo[] pi = t.GetProperties();
     foreach(PropertyInfo prop in pi)
                    Console.WriteLine("->{0}", prop.Name);
     Console.WriteLine("");
}



16    Classification: Restricted   2012-04-19
Dynamically Loading Assemblies

• The act of loading external assemblies on demand is known as a dynamic load.
• System.Reflection defines a class Assembly. Which enables to dynamically load an
  assembly and discover properties about the assembly.
• Assembly type enables to dynamically load private or shared assemblies, as well as
  load an assembly located at an arbitrary location.




17   Classification: Restricted   2012-04-19
Late Binding

• Late binding is a technique in which you are able to create an instance of a given
  type and invoke its members at runtime without having compile-time knowledge of
  its existence.
• It increases applications Extensibility.




18   Classification: Restricted   2012-04-19
Reflection in C #

Harman
Aplication Developer




19   Classification: Restricted   2012-04-19

More Related Content

What's hot

Reflection power pointpresentation ppt
Reflection power pointpresentation pptReflection power pointpresentation ppt
Reflection power pointpresentation ppt
Rohit Vipin Mathews
 
Delegates and events in C#
Delegates and events in C#Delegates and events in C#
Delegates and events in C#
Dr.Neeraj Kumar Pandey
 
Introduction to JSON
Introduction to JSONIntroduction to JSON
Introduction to JSON
Kanda Runapongsa Saikaew
 
JSON: The Basics
JSON: The BasicsJSON: The Basics
JSON: The Basics
Jeff Fox
 
Angular Directives
Angular DirectivesAngular Directives
Angular Directives
Malla Reddy University
 
JDBC: java DataBase connectivity
JDBC: java DataBase connectivityJDBC: java DataBase connectivity
JDBC: java DataBase connectivity
Tanmoy Barman
 
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
Unit 1 - TypeScript & Introduction to Angular CLI.pptxUnit 1 - TypeScript & Introduction to Angular CLI.pptx
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
Malla Reddy University
 
C# classes objects
C#  classes objectsC#  classes objects
C# classes objects
Dr.Neeraj Kumar Pandey
 
What Is Express JS?
What Is Express JS?What Is Express JS?
What Is Express JS?
Simplilearn
 
Angularjs PPT
Angularjs PPTAngularjs PPT
Angularjs PPT
Amit Baghel
 
Angular 10 course_content
Angular 10 course_contentAngular 10 course_content
Angular 10 course_content
NAVEENSAGGAM1
 
Wrapper class
Wrapper classWrapper class
Wrapper class
kamal kotecha
 
CSharp Presentation
CSharp PresentationCSharp Presentation
CSharp Presentation
Vishwa Mohan
 
JavaScript - Chapter 13 - Browser Object Model(BOM)
JavaScript - Chapter 13 - Browser Object Model(BOM)JavaScript - Chapter 13 - Browser Object Model(BOM)
JavaScript - Chapter 13 - Browser Object Model(BOM)
WebStackAcademy
 
collection framework in java
collection framework in javacollection framework in java
collection framework in java
MANOJ KUMAR
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & Streams
Eyal Vardi
 
PHP - Introduction to PHP AJAX
PHP -  Introduction to PHP AJAXPHP -  Introduction to PHP AJAX
PHP - Introduction to PHP AJAX
Vibrant Technologies & Computers
 
Properties and indexers in C#
Properties and indexers in C#Properties and indexers in C#
Properties and indexers in C#
Hemant Chetwani
 
JavaScript - Chapter 12 - Document Object Model
  JavaScript - Chapter 12 - Document Object Model  JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
 

What's hot (20)

Reflection power pointpresentation ppt
Reflection power pointpresentation pptReflection power pointpresentation ppt
Reflection power pointpresentation ppt
 
Delegates and events in C#
Delegates and events in C#Delegates and events in C#
Delegates and events in C#
 
php
phpphp
php
 
Introduction to JSON
Introduction to JSONIntroduction to JSON
Introduction to JSON
 
JSON: The Basics
JSON: The BasicsJSON: The Basics
JSON: The Basics
 
Angular Directives
Angular DirectivesAngular Directives
Angular Directives
 
JDBC: java DataBase connectivity
JDBC: java DataBase connectivityJDBC: java DataBase connectivity
JDBC: java DataBase connectivity
 
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
Unit 1 - TypeScript & Introduction to Angular CLI.pptxUnit 1 - TypeScript & Introduction to Angular CLI.pptx
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
 
C# classes objects
C#  classes objectsC#  classes objects
C# classes objects
 
What Is Express JS?
What Is Express JS?What Is Express JS?
What Is Express JS?
 
Angularjs PPT
Angularjs PPTAngularjs PPT
Angularjs PPT
 
Angular 10 course_content
Angular 10 course_contentAngular 10 course_content
Angular 10 course_content
 
Wrapper class
Wrapper classWrapper class
Wrapper class
 
CSharp Presentation
CSharp PresentationCSharp Presentation
CSharp Presentation
 
JavaScript - Chapter 13 - Browser Object Model(BOM)
JavaScript - Chapter 13 - Browser Object Model(BOM)JavaScript - Chapter 13 - Browser Object Model(BOM)
JavaScript - Chapter 13 - Browser Object Model(BOM)
 
collection framework in java
collection framework in javacollection framework in java
collection framework in java
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & Streams
 
PHP - Introduction to PHP AJAX
PHP -  Introduction to PHP AJAXPHP -  Introduction to PHP AJAX
PHP - Introduction to PHP AJAX
 
Properties and indexers in C#
Properties and indexers in C#Properties and indexers in C#
Properties and indexers in C#
 
JavaScript - Chapter 12 - Document Object Model
  JavaScript - Chapter 12 - Document Object Model  JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
 

Similar to Reflection in C Sharp

Reflection Slides by Zubair Dar
Reflection Slides by Zubair DarReflection Slides by Zubair Dar
Reflection Slides by Zubair Dar
zubairdar6
 
Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Visula C# Programming Lecture 6
Visula C# Programming Lecture 6
Abou Bakr Ashraf
 
5. c sharp language overview part ii
5. c sharp language overview   part ii5. c sharp language overview   part ii
5. c sharp language overview part iiSvetlin Nakov
 
Objective-C for iOS Application Development
Objective-C for iOS Application DevelopmentObjective-C for iOS Application Development
Objective-C for iOS Application Development
Dhaval Kaneria
 
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Igalia
 
Introduction to design_patterns
Introduction to design_patternsIntroduction to design_patterns
Introduction to design_patterns
amitarcade
 
Object-Oriented Programming with C#
Object-Oriented Programming with C#Object-Oriented Programming with C#
Object-Oriented Programming with C#Svetlin Nakov
 
Net framework session01
Net framework session01Net framework session01
Net framework session01
Vivek chan
 
Selenium Training .pptx
Selenium Training .pptxSelenium Training .pptx
Selenium Training .pptx
SajidTk2
 
Object Oriented Programming with C#
Object Oriented Programming with C#Object Oriented Programming with C#
Object Oriented Programming with C#
SyedUmairAli9
 
Php oop (1)
Php oop (1)Php oop (1)
Php oop (1)
Sudip Simkhada
 
OBJECT ORIENTED PROGRAMING IN C++
OBJECT ORIENTED PROGRAMING IN C++ OBJECT ORIENTED PROGRAMING IN C++
OBJECT ORIENTED PROGRAMING IN C++
Dev Chauhan
 
10 - Encapsulation(object oriented programming)- java . ppt
10 - Encapsulation(object oriented programming)- java . ppt10 - Encapsulation(object oriented programming)- java . ppt
10 - Encapsulation(object oriented programming)- java . ppt
VhlRddy
 
Reflecting On The Code Dom
Reflecting On The Code DomReflecting On The Code Dom
Reflecting On The Code Dom
Nick Harrison
 
C++ classes
C++ classesC++ classes
C++ classes
imhammadali
 

Similar to Reflection in C Sharp (20)

Reflection
ReflectionReflection
Reflection
 
Reflection Slides by Zubair Dar
Reflection Slides by Zubair DarReflection Slides by Zubair Dar
Reflection Slides by Zubair Dar
 
Reflection
ReflectionReflection
Reflection
 
Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Visula C# Programming Lecture 6
Visula C# Programming Lecture 6
 
201005 accelerometer and core Location
201005 accelerometer and core Location201005 accelerometer and core Location
201005 accelerometer and core Location
 
5. c sharp language overview part ii
5. c sharp language overview   part ii5. c sharp language overview   part ii
5. c sharp language overview part ii
 
Objective-C for iOS Application Development
Objective-C for iOS Application DevelopmentObjective-C for iOS Application Development
Objective-C for iOS Application Development
 
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
Implementing one feature set in two JavaScript engines (Web Engines Hackfest ...
 
Introduction to design_patterns
Introduction to design_patternsIntroduction to design_patterns
Introduction to design_patterns
 
Object-Oriented Programming with C#
Object-Oriented Programming with C#Object-Oriented Programming with C#
Object-Oriented Programming with C#
 
Net framework session01
Net framework session01Net framework session01
Net framework session01
 
Selenium Training .pptx
Selenium Training .pptxSelenium Training .pptx
Selenium Training .pptx
 
Object Oriented Programming with C#
Object Oriented Programming with C#Object Oriented Programming with C#
Object Oriented Programming with C#
 
Generic
GenericGeneric
Generic
 
Php oop (1)
Php oop (1)Php oop (1)
Php oop (1)
 
Oops concept
Oops conceptOops concept
Oops concept
 
OBJECT ORIENTED PROGRAMING IN C++
OBJECT ORIENTED PROGRAMING IN C++ OBJECT ORIENTED PROGRAMING IN C++
OBJECT ORIENTED PROGRAMING IN C++
 
10 - Encapsulation(object oriented programming)- java . ppt
10 - Encapsulation(object oriented programming)- java . ppt10 - Encapsulation(object oriented programming)- java . ppt
10 - Encapsulation(object oriented programming)- java . ppt
 
Reflecting On The Code Dom
Reflecting On The Code DomReflecting On The Code Dom
Reflecting On The Code Dom
 
C++ classes
C++ classesC++ classes
C++ classes
 

Recently uploaded

Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
Excellence Foundation for South Sudan
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
Steve Thomason
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
Celine George
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)
rosedainty
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptxMARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
bennyroshan06
 
Sectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdfSectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdf
Vivekanand Anglo Vedic Academy
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
Col Mukteshwar Prasad
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 

Recently uploaded (20)

Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptxMARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
 
Sectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdfSectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdf
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 

Reflection in C Sharp

  • 1. Interactive Session on Reflection In C Sharp Classification: Restricted 2012-04-19
  • 2. Reflection •Reflection is the Feature that enables you to obtain the information about a type. •All .NET assemblies have metadata information stored about the types defined in modules. This metadata information can be accessed by mechanism called as “Reflection”. •Reflection is the ability of a managed code to read its own metadata for the purpose of finding assemblies, modules and type information at runtime. In other words, reflection provides objects that encapsulate assemblies, modules and types. A program reflects on itself by extracting metadata from its assembly and using that metadata either to inform the user or to modify its own behavior. Reflection is similar to C++ RTTI (Runtime Type Information), but much broader in scope and capability 2 Classification: Restricted 2012-04-19
  • 3. Reflection Name Space to be used System.reflection • When writing a C# code that uses reflection, the coder can use the type of operator to get the object's type or use the GetType() method to get the type of the current instance. • Using reflection services, we are able to programmatically obtain the same metadata information displayed by ildasm.exe. 3 Classification: Restricted 2012-04-19
  • 4. Example of Reflection • Using GetType to obtain type information: C# Code :- • int i = 42; System.Type type = i.GetType(); System.Console.WriteLine(type); • Output of this Code will be System.Int32 4 Classification: Restricted 2012-04-19
  • 5. When use Reflection • If we want to know assembly information at run time ,then we use reflection. Reflection are used for data binding in .NET Framework. It is also used for testing in .NET Framework. 5 Classification: Restricted 2012-04-19
  • 6. Example • In the below example reflection is used to obtain the full name of a loaded assembly: CODE System.Reflection.Assembly o = System.Reflection.Assembly.Load("mscorlib.dll"); System.Console.WriteLine(o.GetName()); Output of the above code mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 6 Classification: Restricted 2012-04-19
  • 7. So Reflection allows you to • Enumerate the members of a type • Instantiate a new object • Execute the members of an object • Find out information about a type • Find out information about an assembly • Inspect the custom attributes applied to a type • Create and compile a new assembly 7 Classification: Restricted 2012-04-19
  • 8. System.Reflection Namespace 8 Classification: Restricted 2012-04-19
  • 9. The System.Type Class • The System.Type class defines a number of members that can be used to examine a type’s metadata, a great number of which return types from the System.Reflection namespace. • Eg: Type.GetMethods() returns an array of MethodInfo types, Type.GetFields() returns an array of FieldInfo types. 9 Classification: Restricted 2012-04-19
  • 10. Members of System.Type • IsAbstract • IsArray • IsClass • IsCOMObject • IsEnum • IsInterface • IsPrimitive • IsNestedPrivate • IsNestedPublic • IsSealed • IsValueType • These properties allow you to discover a number of basic traits about the Type you are referring to (e.g., if it is an abstract method, an array, a nested class, and so forth). 10 Classification: Restricted 2012-04-19
  • 11. Methods • GetConstructors() • GetEvents() • GetFields() • GetInterfaces() • GetMembers() • GetMethods(). • GetNestedTypes() • GetProperties() • These methods allow you to obtain an array representing the items (interface, method, property, etc.) you are interested in. Each method returns a related array (e.g., GetFields() returns a FieldInfo array, GetMethods() returns a MethodInfo array, etc.). Each of these methods has a singular form (e.g., GetMethod(), GetProperty(), etc.) that allows you to retrieve a specific item by name, rather than an array of all related items. 11 Classification: Restricted 2012-04-19
  • 12. Methods • GetType() To obtain type information, you may call the static GetType() member of the System.Type class and specify the fully qualified string name of the type to examine. Compile-time knowledge of the type to be extracted from metadata is not required. 12 Classification: Restricted 2012-04-19
  • 13. GET TYPE METHOD • The Type.GetType() method has overloads to allow you to specify two Boolean parameters, one of which controls whether an exception should be thrown if the type cannot be found, and the other of which establishes the case sensitivity of the string. • Obtaining type information using the static Type.GetType() method: • Type t = Type.GetType("CarLibrary.SportsCar", false, true); 13 Classification: Restricted 2012-04-19
  • 14. Reflecting on Methods • Type.GetMethods() returns an array of System.Reflection.MethodInfo types. // Display method names of type. public static void ListMethods(Type t) { Console.WriteLine("Methods"); MethodInfo[] mi = t.GetMethods(); foreach(MethodInfo m in mi) Console.WriteLine("->{0}", m.Name); Console.WriteLine(""); } 14 Classification: Restricted 2012-04-19
  • 15. Reflecting on Fields • Type.GetFields() returns an array of System.Reflection.FieldInfo types. // Display field names of type public static void ListFields(Type t) { Console.WriteLine("Fields"); FieldInfo[] fi = t.GetFields(); foreach(FieldInfo field in fi) Console.WriteLine("->{0}", field.Name); Console.WriteLine(""); } 15 Classification: Restricted 2012-04-19
  • 16. Reflecting on Properties • Type. GetProperties() returns an array of System.Reflection. PropertyInfo types. // Display property names of type. public static void ListProps(Type t) { Console.WriteLine("***** Properties *****"); PropertyInfo[] pi = t.GetProperties(); foreach(PropertyInfo prop in pi) Console.WriteLine("->{0}", prop.Name); Console.WriteLine(""); } 16 Classification: Restricted 2012-04-19
  • 17. Dynamically Loading Assemblies • The act of loading external assemblies on demand is known as a dynamic load. • System.Reflection defines a class Assembly. Which enables to dynamically load an assembly and discover properties about the assembly. • Assembly type enables to dynamically load private or shared assemblies, as well as load an assembly located at an arbitrary location. 17 Classification: Restricted 2012-04-19
  • 18. Late Binding • Late binding is a technique in which you are able to create an instance of a given type and invoke its members at runtime without having compile-time knowledge of its existence. • It increases applications Extensibility. 18 Classification: Restricted 2012-04-19
  • 19. Reflection in C # Harman Aplication Developer 19 Classification: Restricted 2012-04-19