<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>eXclusiveMinds &#187; Reflection</title>
	<atom:link href="http://eXclusiveMinds.com/tag/reflection/feed/" rel="self" type="application/rss+xml" />
	<link>http://eXclusiveMinds.com</link>
	<description>eXclusive resource for programmers, developers and designers</description>
	<lastBuildDate>Sat, 13 Mar 2010 23:28:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Reflection Examples in C#</title>
		<link>http://eXclusiveMinds.com/2009/03/13/reflection-examples-in-c/</link>
		<comments>http://eXclusiveMinds.com/2009/03/13/reflection-examples-in-c/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 00:06:14 +0000</pubDate>
		<dc:creator>eXclusiveMinds</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://eXclusiveMinds.com/?p=177</guid>
		<description><![CDATA[Following example demonstrate about loading assembly dynamically, creating instance, invoking method and getting/setting property value.

Creating instance from assembly (in project References) 
Following example creates objects of DateTime class (this is from system assembly).

DateTime dt = &#40;DateTime&#41;Activator.CreateInstance&#40;typeof&#40;DateTime&#41;&#41;;
DateTime dt = &#40;DateTime&#41;Activator.CreateInstance&#40;typeof&#40;DateTime&#41;,
                 [...]]]></description>
			<content:encoded><![CDATA[<p>Following example demonstrate about loading assembly dynamically, creating instance, invoking method and getting/setting property value.<br />
<span id="more-177"></span></p>
<p><strong>Creating instance from assembly (in project References) </strong><br />
Following example creates objects of DateTime class (this is from system assembly).</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">DateTime dt <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>DateTime<span style="color: #000000;">&#41;</span>Activator.<span style="color: #0000FF;">CreateInstance</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>DateTime<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
DateTime dt <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>DateTime<span style="color: #000000;">&#41;</span>Activator.<span style="color: #0000FF;">CreateInstance</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>DateTime<span style="color: #000000;">&#41;</span>,
                                                       <span style="color: #008000;">new</span> <span style="color: #FF0000;">object</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">2009</span>, <span style="color: #FF0000;">10</span>, <span style="color: #FF0000;">9</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p><strong>Creating instance (with dynamically loaded assembly)</strong><br />
<strong>sample MyCalculator class</strong></p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #0600FF;">namespace</span> MyCalc
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> MyCalculator
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">public</span> MyCalculator<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><span style="color: #000000;">&#125;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">double</span> Number <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span>set<span style="color: #008000;">;</span><span style="color: #000000;">&#125;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Clear<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><span style="color: #000000;">&#125;</span>
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> DoClear<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><span style="color: #000000;">&#125;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">double</span> Add<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span> number<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><span style="color: #000000;">&#125;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">double</span> Pi <span style="color: #000000;">&#123;</span><span style="color: #000000;">&#125;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">double</span> GetPi<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></td></tr></table></div>

<p><strong>Various example or using reflection with MyCalc.dll assembly</strong><br />
Loading assembly from MyCalc.dll dynamically</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">Assembly myAssembly <span style="color: #008000;">=</span> Assembly.<span style="color: #0000FF;">LoadFile</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">@&quot;c:\MyCalc.dll&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Getting type of MyCalculator class</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">Type type <span style="color: #008000;">=</span> myAssembly.<span style="color: #0000FF;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;MyCalc.MyCalculator&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Creating instance of MyCalculator</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #FF0000;">object</span> myCalcInstance <span style="color: #008000;">=</span> Activator.<span style="color: #0000FF;">CreateInstance</span><span style="color: #000000;">&#40;</span>type<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Getting property info</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">PropertyInfo myPropertyInfo <span style="color: #008000;">=</span> type.<span style="color: #0000FF;">GetProperty</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Number&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Getting property value</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #FF0000;">double</span> value <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>myPropertyInfo.<span style="color: #0000FF;">GetValue</span><span style="color: #000000;">&#40;</span>myCalcInstance, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Setting property value</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">myPropertyInfo.<span style="color: #0000FF;">SetValue</span><span style="color: #000000;">&#40;</span>myCalcInstance, <span style="color: #FF0000;">10.0</span>, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Getting static property info</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">PropertyInfo piPropertyInfo <span style="color: #008000;">=</span> type.<span style="color: #0000FF;">GetProperty</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Pi&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Getting value from static property</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #FF0000;">double</span> piValue <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>piPropertyInfo.<span style="color: #0000FF;">GetValue</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">null</span>, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Invoking public instance method</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">type.<span style="color: #0000FF;">InvokeMember</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Clear&quot;</span>,
    BindingFlags.<span style="color: #0000FF;">InvokeMethod</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0000FF;">Instance</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0600FF;">Public</span>,
    <span style="color: #0600FF;">null</span>, myCalcInstance, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Invoking private instance method</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">type.<span style="color: #0000FF;">InvokeMember</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;DoClear&quot;</span>,
    BindingFlags.<span style="color: #0000FF;">InvokeMethod</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0000FF;">Instance</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0000FF;">NonPublic</span>,
    <span style="color: #0600FF;">null</span>, myCalcInstance, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Another public instance method</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #FF0000;">double</span> value <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>type.<span style="color: #0000FF;">InvokeMember</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Add&quot;</span>,
    BindingFlags.<span style="color: #0000FF;">InvokeMethod</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0000FF;">Instance</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0600FF;">Public</span>,
    <span style="color: #0600FF;">null</span>, myCalcInstance, <span style="color: #008000;">new</span> <span style="color: #FF0000;">object</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">20.0</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<p>Invoking public static method</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #FF0000;">double</span> piValue <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>type.<span style="color: #0000FF;">InvokeMember</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;GetPi&quot;</span>,
    BindingFlags.<span style="color: #0000FF;">InvokeMethod</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0600FF;">Static</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0600FF;">Public</span>,
    <span style="color: #0600FF;">null</span>, <span style="color: #0600FF;">null</span>, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<img src="http://eXclusiveMinds.Com/?ak_action=api_record_view&id=177&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://eXclusiveMinds.com/2009/03/13/reflection-examples-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Method Names using Reflection in C#</title>
		<link>http://eXclusiveMinds.com/2009/01/27/get-method-names-using-reflection-in-c/</link>
		<comments>http://eXclusiveMinds.com/2009/01/27/get-method-names-using-reflection-in-c/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 00:11:00 +0000</pubDate>
		<dc:creator>eXclusiveMinds</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://eXclusiveMinds.com/?p=182</guid>
		<description><![CDATA[By using Type.GetMethods we can get method names for given type using C#; which returns collection of MethodInfoobjects.

To filter returned methods This BindingFlags is used for filtering returned method.
Example: Getting names of static methods

using System.Reflection;
MethodInfo&#91;&#93; methodInfoList = typeof&#40;MyClass&#41;.GetMethods&#40;BindingFlags.Public &#124;
                 [...]]]></description>
			<content:encoded><![CDATA[<p>By using <a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/4d848zkb.aspx">Type.GetMethods</a> we can get method names for given type using C#; which returns collection of <a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/system.reflection.methodinfo_members.aspx">MethodInfo</a>objects.<br />
<span id="more-182"></span></p>
<p>To filter returned methods This <a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/System.Reflection.BindingFlags.aspx">BindingFlags</a> is used for filtering returned method.</p>
<p><strong>Example: Getting names of static methods</strong></p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Reflection</span><span style="color: #008000;">;</span>
MethodInfo<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> methodInfoList <span style="color: #008000;">=</span> <span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>MyClass<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">GetMethods</span><span style="color: #000000;">&#40;</span>BindingFlags.<span style="color: #0600FF;">Public</span> <span style="color: #008000;">|</span>
                                                      BindingFlags.<span style="color: #0600FF;">Static</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// sorting methods by it name</span>
Array.<span style="color: #0000FF;">Sort</span><span style="color: #000000;">&#40;</span>methodInfoList,
        <span style="color: #FF0000;">delegate</span><span style="color: #000000;">&#40;</span>MethodInfo methodInfo1, MethodInfo myMethodInfo2<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">return</span> methodInfo1.<span style="color: #0000FF;">Name</span>.<span style="color: #0000FF;">CompareTo</span><span style="color: #000000;">&#40;</span>myMethodInfo2.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// Displaying method name</span>
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>MethodInfo myMethodInfo <span style="color: #0600FF;">in</span> methodInfoList<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
  Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>myMethodInfo.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></td></tr></table></div>

<img src="http://eXclusiveMinds.Com/?ak_action=api_record_view&id=182&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://eXclusiveMinds.com/2009/01/27/get-method-names-using-reflection-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Property Names using Reflection in C#</title>
		<link>http://eXclusiveMinds.com/2008/12/14/get-property-names-using-reflection-in-c/</link>
		<comments>http://eXclusiveMinds.com/2008/12/14/get-property-names-using-reflection-in-c/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 00:12:47 +0000</pubDate>
		<dc:creator>eXclusiveMinds</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://eXclusiveMinds.com/?p=184</guid>
		<description><![CDATA[This example shows how we can get names of all properties for a specific type by using Type.GetProperties.
 
Example

&#160;
PropertyInfo&#91;&#93; propertyInfoCollection;
propertyInfoCollection = typeof&#40;MyTestClass&#41;.GetProperties&#40;BindingFlags.Public &#124;
                                 [...]]]></description>
			<content:encoded><![CDATA[<p>This example shows how we can get names of all properties for a specific type by using <a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/kyaxdd3x.aspx">Type.GetProperties</a>.<br />
 <span id="more-184"></span><br />
<strong>Example</strong></p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">&nbsp;
PropertyInfo<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> propertyInfoCollection<span style="color: #008000;">;</span>
propertyInfoCollection <span style="color: #008000;">=</span> <span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>MyTestClass<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">GetProperties</span><span style="color: #000000;">&#40;</span>BindingFlags.<span style="color: #0600FF;">Public</span> <span style="color: #008000;">|</span>
                                              BindingFlags.<span style="color: #0600FF;">Static</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008080; font-style: italic;">// sorting property</span>
Array.<span style="color: #0000FF;">Sort</span><span style="color: #000000;">&#40;</span>propertyInfoCollection,
        <span style="color: #FF0000;">delegate</span><span style="color: #000000;">&#40;</span>PropertyInfo myPropertyInfo1, PropertyInfo myPropertyInfo2<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">return</span> myPropertyInfo1.<span style="color: #0000FF;">Name</span>.<span style="color: #0000FF;">CompareTo</span><span style="color: #000000;">&#40;</span>myPropertyInfo2.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// Displaying property names by iterating through collection</span>
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>PropertyInfo property <span style="color: #0600FF;">in</span> propertyInfoCollection<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
  Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>property.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></td></tr></table></div>

<img src="http://eXclusiveMinds.Com/?ak_action=api_record_view&id=184&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://eXclusiveMinds.com/2008/12/14/get-property-names-using-reflection-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Calling Method using Reflection in C#</title>
		<link>http://eXclusiveMinds.com/2008/12/02/get-calling-method-using-reflection-in-c/</link>
		<comments>http://eXclusiveMinds.com/2008/12/02/get-calling-method-using-reflection-in-c/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 00:15:00 +0000</pubDate>
		<dc:creator>eXclusiveMinds</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://eXclusiveMinds.com/?p=187</guid>
		<description><![CDATA[To get name of the calling method we use method StackTrace.Get­Frame.
Example showing how we can get name of calling method.

using System.Diagnostics;
StackTrace stTrace = new StackTrace&#40;&#41;;
Console.WriteLine&#40;stTrace.GetFrame&#40;1&#41;.GetMethod&#40;&#41;.Name&#41;;

]]></description>
			<content:encoded><![CDATA[<p>To get name of the calling method we use method <strong><a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.stacktrace.getframe.aspx">StackTrace.Get­Frame</a>.<span id="more-187"></span><br />
<strong>Example showing how we can get name of calling method.</strong></p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Diagnostics</span><span style="color: #008000;">;</span>
StackTrace stTrace <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StackTrace<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>stTrace.<span style="color: #0000FF;">GetFrame</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">GetMethod</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></td></tr></table></div>

<img src="http://eXclusiveMinds.Com/?ak_action=api_record_view&id=187&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://eXclusiveMinds.com/2008/12/02/get-calling-method-using-reflection-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Call Stack in C#</title>
		<link>http://eXclusiveMinds.com/2008/11/09/get-call-stack-in-c/</link>
		<comments>http://eXclusiveMinds.com/2008/11/09/get-call-stack-in-c/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 00:17:02 +0000</pubDate>
		<dc:creator>eXclusiveMinds</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://eXclusiveMinds.com/?p=190</guid>
		<description><![CDATA[Following example shows how we can get call stack with C#.
StackTrace class represents Call Stack.
StackFrame class represents method call.

Example to print call stack method names

using System.Diagnostics;
&#160;
&#91;STAThread&#93;
static void Main&#40;&#41;
&#123;
  StackTrace stTrace = new StackTrace&#40;&#41;;           
  StackFrame&#91;&#93; stackFrames = stTrace.GetFrames&#40;&#41;;  
&#160;
  foreach &#40;StackFrame [...]]]></description>
			<content:encoded><![CDATA[<p>Following example shows how we can get call stack with C#.<br />
<a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.stacktrace_members.aspx">StackTrace</a> class represents Call Stack.<br />
<a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.stackframe_members.aspx">StackFrame</a> class represents method call.<br />
<span id="more-190"></span><br />
<strong>Example to print call stack method names</strong></p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Diagnostics</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #000000;">&#91;</span>STAThread<span style="color: #000000;">&#93;</span>
<span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
  StackTrace stTrace <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StackTrace<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>           
  StackFrame<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> stackFrames <span style="color: #008000;">=</span> stTrace.<span style="color: #0000FF;">GetFrames</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>  
&nbsp;
  <span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>StackFrame frame <span style="color: #0600FF;">in</span> stackFrames<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>stTrace.<span style="color: #0000FF;">GetMethod</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>   
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></td></tr></table></div>

<p>OUTPUT:</p>

<div class="wp_syntax"><table><tr><td><div class="code"><pre class="csharp" style="font-family:Consolas; monospace;">Main
nExecuteAssembly
ExecuteAssembly
RunUsersAssembly
ThreadStart_Context
Run
ThreadStart</pre></div></td></tr></table></div>

<img src="http://eXclusiveMinds.Com/?ak_action=api_record_view&id=190&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://eXclusiveMinds.com/2008/11/09/get-call-stack-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
