<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Javier Villarreal : C#</title><link>http://weblogs.asp.net/javiervillarreal/archive/tags/C_2300_/default.aspx</link><description>Tags: C#</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Immediate Interfaces for a type</title><link>http://weblogs.asp.net/javiervillarreal/archive/2009/03/31/immediate-interface-for-a-type.aspx</link><pubDate>Tue, 31 Mar 2009 18:41:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7016389</guid><dc:creator>Javier.Villarreal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/javiervillarreal/rsscomments.aspx?PostID=7016389</wfw:commentRss><comments>http://weblogs.asp.net/javiervillarreal/archive/2009/03/31/immediate-interface-for-a-type.aspx#comments</comments><description>&lt;p&gt;If anybody is interested to get the immediate interfaces for a type, this a way to get it:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;div style="font-size: 12px;"&gt;
&lt;pre style="background-color: white;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; Gets the immediate interfaces.&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;param name="type"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;The type.&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(128, 128, 128);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Type[] GetImmediateInterfaces(Type type)&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;        {&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;            Type[] interfaces &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; type.GetInterfaces();&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; GetImmediateInterfaces(interfaces);&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;        }&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; Gets the immediate interfaces.&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;param name="interfaces"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;The interfaces.&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(128, 128, 128);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Type[] GetImmediateInterfaces(Type[] interfaces)&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;        {&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;            List&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Type&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; immediateInterfaces &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; List&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Type&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;();&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (Type possibleImmediateInterface &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; interfaces)&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;            {&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; isBaseInterface &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (Type baseInterface &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; interfaces)&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                {&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (possibleImmediateInterface &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;!=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; baseInterface &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; possibleImmediateInterface.IsAssignableFrom(baseInterface))&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                    {&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                        isBaseInterface &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                    }&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                }&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;isBaseInterface)&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;                    immediateInterfaces.Add(possibleImmediateInterface);&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;            }&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; immediateInterfaces.ToArray();&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;        }&lt;/span&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7016389" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/javiervillarreal/archive/tags/C_2300_/default.aspx">C#</category></item></channel></rss>