﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Bemused Musings</title>
    <description>Ideas about current and future .NET directions, and things that don't fit elsewhere</description>
    <link>http://www.gendotnet.com/Blogs/tabid/444/BlogId/2/Default.aspx</link>
    <language>en-US</language>
    <managingEditor>kathleen@gendotnet.com</managingEditor>
    <webMaster>kathleen@gendotnet.com</webMaster>
    <pubDate>Thu, 07 Aug 2008 15:05:20 GMT</pubDate>
    <lastBuildDate>Thu, 07 Aug 2008 15:05:20 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.1.20.17153</generator>
    <item>
      <title>CreateInstance requires an Instance binding flag</title>
      <description>
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;I was beating my head against Activator.CreateInstance this morning. It was just telling me the constructor didn’t exist, when I knew it existed. The constructor in this case is private to prohibit any use outside the class. I’m using CreateInstance when I’m creating the class from its generic base class. It also has parameters, so the simplest overload I can use is&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
				&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??&gt;
				&lt;o:p&gt; &lt;/o:p&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0.6pt 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;
				&lt;span class="keyword"&gt;
						&lt;span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;Public&lt;/span&gt;
				&lt;/span&gt;
				&lt;span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;
						&lt;span class="keyword"&gt;Shared&lt;/span&gt;
						&lt;span class="keyword"&gt;Function&lt;/span&gt;
						&lt;span class="identifier"&gt;CreateInstance&lt;/span&gt; ( _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0.6pt 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;
				&lt;span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;
						&lt;span style="mso-tab-count: 1"&gt;        &lt;/span&gt;
						&lt;span class="parameter"&gt;
								&lt;em&gt;type&lt;/em&gt;
						&lt;/span&gt;
						&lt;span class="keyword"&gt;As&lt;/span&gt;
						&lt;a href="http://www.gendotnet.comms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref2/html/T_System_Type.htm"&gt;Type&lt;/a&gt;, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0.6pt 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;
				&lt;span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;
						&lt;span style="mso-tab-count: 1"&gt;        &lt;/span&gt;
						&lt;span class="parameter"&gt;
								&lt;em&gt;bindingAttr&lt;/em&gt;
						&lt;/span&gt;
						&lt;span class="keyword"&gt;As&lt;/span&gt; BindingFlags, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0.6pt 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;
				&lt;span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;
						&lt;span style="mso-tab-count: 1"&gt;        &lt;/span&gt;
						&lt;span class="parameter"&gt;
								&lt;em&gt;binder&lt;/em&gt;
						&lt;/span&gt;
						&lt;span class="keyword"&gt;As&lt;/span&gt; Binder, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0.6pt 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;
				&lt;span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;
						&lt;span style="mso-tab-count: 1"&gt;        &lt;/span&gt;
						&lt;span class="parameter"&gt;
								&lt;em&gt;args&lt;/em&gt;
						&lt;/span&gt;
						&lt;span class="keyword"&gt;As&lt;/span&gt;
						&lt;a href="http://www.gendotnet.comhttp://www.gendotnet.comms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref2/html/T_System_Object.htm"&gt;Object&lt;/a&gt;(), _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0.6pt 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;
				&lt;span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;
						&lt;span style="mso-tab-count: 1"&gt;        &lt;/span&gt;
						&lt;span class="parameter"&gt;
								&lt;em&gt;culture&lt;/em&gt;
						&lt;/span&gt;
						&lt;span class="keyword"&gt;As&lt;/span&gt; CultureInfo _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0.6pt 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;
				&lt;span style="FONT-SIZE: 10pt; COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;) &lt;span class="keyword"&gt;As&lt;/span&gt;&lt;a href="http://www.gendotnet.comhttp://www.gendotnet.comms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref2/html/T_System_Object.htm"&gt;Object&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
				&lt;o:p&gt; &lt;/o:p&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;This isn’t quite as ugly to use as it seems because you can pass Nothing (null in C#) for both the binder and the culture. I tried:&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
				&lt;o:p&gt; &lt;/o:p&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;Return&lt;/span&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="COLOR: blue"&gt;DirectCast&lt;/span&gt;( _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;Activator.CreateInstance(&lt;span style="COLOR: blue"&gt;GetType&lt;/span&gt;(TList), _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;Reflection.BindingFlags.NonPublic, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;
						&lt;span style="COLOR: blue"&gt;Nothing&lt;/span&gt;, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;
						&lt;span style="COLOR: blue"&gt;New&lt;/span&gt;
						&lt;span style="COLOR: blue"&gt;Object&lt;/span&gt;() {dr}, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;
						&lt;span style="COLOR: blue"&gt;Nothing&lt;/span&gt;), TList)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
				&lt;o:p&gt; &lt;/o:p&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;The problem I encountered is that you also need to specify BindingFlags.Instance.&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
				&lt;o:p&gt; &lt;/o:p&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;Return&lt;/span&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="COLOR: blue"&gt;DirectCast&lt;/span&gt;( _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;Activator.CreateInstance(&lt;span style="COLOR: blue"&gt;GetType&lt;/span&gt;(TList), _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;
						&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;
						&lt;span style="COLOR: blue"&gt;Nothing&lt;/span&gt;, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;
						&lt;span style="COLOR: blue"&gt;New&lt;/span&gt;
						&lt;span style="COLOR: blue"&gt;Object&lt;/span&gt;() {dr}, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
				&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Lucida Console'; mso-no-proof: yes"&gt;
						&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;
						&lt;span style="COLOR: blue"&gt;Nothing&lt;/span&gt;), TList)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
				&lt;o:p&gt; &lt;/o:p&gt;
		&lt;/p&gt;
		&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;In retrospect, this isn’t really onerous, it’s just something you need to know when using this method. &lt;/p&gt;
</description>
      <link>http://www.gendotnet.com/Blogs/tabid/444/EntryID/3/Default.aspx</link>
      <author>kathleen@mvps.org</author>
      <comments>http://www.gendotnet.com/Blogs/tabid/444/EntryID/3/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.gendotnet.com/Default.aspx?tabid=444&amp;EntryID=3</guid>
      <pubDate>Wed, 02 Aug 2006 06:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gendotnet.com/DesktopModules/Blog/Trackback.aspx?id=3</trackback:ping>
    </item>
  </channel>
</rss>