title: MissingMethodException using classic ADO's Recordset.Type property
body: <p>In my ASP.NET app, I'm using classic ADO 2.8 to save some data into an Access database. (Or a Jet database, for those who insist that Access is just the front-end.) So I have a RecordSet containing some data, and I want to set the value for some fields, but first I need to know the field type. So I use the Recordset.Type property:</p>
  
  <pre><code>Dim fieldType = rs("MyField").Type
  </code></pre>
  
  <p>And that unexpectedly results in an error: <strong>MissingMethodException was unhandled by user code</strong> -- Error: Missing method 'instance valuetype ADODB.DataTypeEnum [MyProjectName] ADODB.Field::get_Type()' from class 'ADODB.InternalField'.</p>
  
  <p>Considering that it is .NET itself that has created the .NET/COM interop assembly, any idea why?</p>
  
  <p>And here's the strangest thing: When the debugger stops and reports the error and takes me to the spot in my code where it happened, and it has that great feature by which you can hover the mouse over any variable etc. and it will show its value -- so I hover over the <code>rs("MyField").Type</code> part, and, lo and behold, it shows the correct value!</p>
  
  <p>So if it could evaluate it at debug-time, why did it throw an error at run-time???</p>