{"id":5873,"date":"2007-06-27T21:30:00","date_gmt":"2007-06-27T21:30:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vbteam\/2007\/06\/27\/linq-cookbook-recipe-4-find-all-complex-types-in-a-given-assembly-kit-george\/"},"modified":"2024-07-05T14:44:37","modified_gmt":"2024-07-05T21:44:37","slug":"linq-cookbook-recipe-4-find-all-complex-types-in-a-given-assembly-kit-george","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/vbteam\/linq-cookbook-recipe-4-find-all-complex-types-in-a-given-assembly-kit-george\/","title":{"rendered":"LINQ Cookbook, Recipe 4: Find all complex types in a given assembly (Kit George)"},"content":{"rendered":"<dt>\n<dd>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\">Ingredients:<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><span><span><font face=\"Calibri\" size=\"3\">&#8211;<\/font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font size=\"3\"><font face=\"Calibri\">Visual Studio 2008 (Beta2 or Higher)<\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><font size=\"3\"><font face=\"Calibri\">&#8211;&nbsp;&nbsp;&nbsp;&nbsp; An assembly which you want to analyze (in this example, we use mscorlib.dll, the assembly which houses String)<\/font><\/font><\/p>\n<\/dd>\n<p class=\"MsoListParagraph\"><font face=\"Calibri\" size=\"3\">&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A definition for &#8216;Complex Type&#8217;. In this instance, a complex type is defined as having more than 10 public methods, of which at least one has more than 3 arguments<\/font><\/p>\n<dd>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\">Categories: LINQ-To-Objects, LINQ and types, LINQ and WinForms<\/font><\/font><\/p>\n<\/dd>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoNormal\"><font size=\"3\"><font face=\"Calibri\">Instructions:<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><span><span><font face=\"Calibri\" size=\"3\">&#8211;<\/font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font size=\"3\"><font face=\"Calibri\">Open Visual Studio 2008, and Click &lsquo;File\/New Project&rsquo;. <\/font><\/font><font size=\"3\"><font face=\"Calibri\">Find and double-click the &lsquo;Windows Forms Application&rsquo; Icon<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><span><span><font face=\"Calibri\" size=\"3\">&#8211;<\/font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font size=\"3\"><font face=\"Calibri\">Drag and drop a Listbox to the form. Size the listbox to be fairly tall. <\/font><\/font><font size=\"3\"><font face=\"Calibri\">Drag and drop a button to the form<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><span><span><font face=\"Calibri\" size=\"3\">&#8211;<\/font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font size=\"3\"><font face=\"Calibri\">Double-click the button, and add the following code to the button:<\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><font size=\"3\"><font face=\"Calibri\"><\/p>\n<p>&nbsp;<\/p>\n<p><\/font><\/font><\/p>\n<p class=\"MsoNormal\"><span><span><\/span><\/span><span><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"2\"><font color=\"#0000ff\" size=\"2\">Dim<\/font><font size=\"2\"> q = <\/font><font color=\"#0000ff\" size=\"2\">From<\/font><font size=\"2\"> type <\/font><font color=\"#0000ff\" size=\"2\">In<\/font><font size=\"2\"> System.Reflection.Assembly.GetAssembly( _<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"2\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=\"#0000ff\" size=\"2\">GetType<\/font><font size=\"2\">(<\/font><font color=\"#0000ff\" size=\"2\">String<\/font><font size=\"2\">)).GetTypes(), _<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"2\"><font size=\"2\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m <\/font><font color=\"#0000ff\" size=\"2\">In<\/font><font size=\"2\"> type.GetMethods() _<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"2\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=\"#0000ff\" size=\"2\">Where<\/font><font size=\"2\"> type.IsPublic _<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"2\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<font color=\"#0000ff\" size=\"2\">AndAlso<\/font><font size=\"2\"> type.GetMethods.Length &gt; 10 _<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"2\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=\"#0000ff\" size=\"2\">AndAlso<\/font><font size=\"2\"> m.GetParameters.Length &gt; 3 _<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"2\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=\"#0000ff\" size=\"2\">Select<\/font><font size=\"2\"> type <\/font><font color=\"#0000ff\" size=\"2\">Distinct<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\">&nbsp;<\/p>\n<p class=\"MsoNormal\"><span><font color=\"#0000ff\" size=\"2\"><\/font>&nbsp;<\/span><\/p>\n<p><font size=\"2\">ListBox1.Items.AddRange(q.ToArray)<\/font><\/dt>\n","protected":false},"excerpt":{"rendered":"<p>Ingredients: &#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Visual Studio 2008 (Beta2 or Higher) &#8211;&nbsp;&nbsp;&nbsp;&nbsp; An assembly which you want to analyze (in this example, we use mscorlib.dll, the assembly which houses String) &#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A definition for &#8216;Complex Type&#8217;. In this instance, a complex type is defined as having more than 10 public methods, of which at least one has more than [&hellip;]<\/p>\n","protected":false},"author":260,"featured_media":8818,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[192,195],"tags":[88,90,93,94,166],"class_list":["post-5873","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured","category-visual-basic","tag-kevin-halverson","tag-kit-george","tag-linq-cookbook","tag-linqvb9","tag-vb2008"],"acf":[],"blog_post_summary":"<p>Ingredients: &#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Visual Studio 2008 (Beta2 or Higher) &#8211;&nbsp;&nbsp;&nbsp;&nbsp; An assembly which you want to analyze (in this example, we use mscorlib.dll, the assembly which houses String) &#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A definition for &#8216;Complex Type&#8217;. In this instance, a complex type is defined as having more than 10 public methods, of which at least one has more than [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts\/5873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/users\/260"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/comments?post=5873"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts\/5873\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/media\/8818"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/media?parent=5873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/categories?post=5873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/tags?post=5873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}