title: Oracle DataAccess related: "The invoked member is not supported in a dynamic assembly."
body: <p>I understand that such an error has been discussed multiple times on SO. Some turned that was a bug in DLL file, some resolved by changing DLL version, other didn't seem to have a clue. Anyway I just post to try my luck:</p>
  
  <p>My application crashed when selecting a row in a grid on a C# GUI. The stackTrace looks like:</p>
  
  <pre><code>System.NotSupportedException: The invoked member is not supported in a dynamic assembly.
  at Oracle.DataAccess.Types.OracleUdt.GetAllReferencedAssemblies()
  at Oracle.DataAccess.Client.RegAndConfigRdr.setudtmapping(Hashtable&amp; s_mapUdtNameToMappingObj)
  at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
  at Oracle.DataAccess.Types.OracleUdt.SetCustomTypeMappings()
  at Oracle.DataAccess.Types.OracleUdt.GetUdtName(String customTypeName, String dataSource)
  at Oracle.DataAccess.Client.OracleParameter.SetUDTFromCustomObject(OracleConnection conn, IOracleCustomType customObj, Int32 i)
  at Oracle.DataAccess.Client.OracleParameter.PreBind_OracleObject(OracleConnection conn)
  at Oracle.DataAccess.Client.OracleParameter.PreBind_Object(OracleConnection conn)
  at Oracle.DataAccess.Client.OracleParameter.PreBind(OracleConnection conn, IntPtr errCtx, Int32 arraySize)
  at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
  at Oracle.DataAccess.Client.OracleCommand.ExecuteReader()
  </code></pre>
  
  <p>my coworkers didn't experience this problem so I figure it has something to do with my local machine.</p>
  
  <p>I looked up the Oracle.DataAccess.dll in GAC, it looks like (I used .Net 4.0, under c:/windows/Microsoft.NET/assembly):</p>
  
  <pre><code>find . -name "Oracle.*DataAccess*.dll"
  ./GAC_32/Oracle.DataAccess/v4.0_4.121.2.0__89b483f429c47342/Oracle.DataAccess.dll
  ./GAC_MSIL/Oracle.ManagedDataAccess/v4.0_4.121.2.0__89b483f429c47342/Oracle.ManagedDataAccess.dll
  </code></pre>
  
  <p>My coworkers used: V2.121.3.0 and no managed dll. The reason why my DLL being different from theirs is that I use VS2015 vs. they VS2013, and it took me a while to figure out the right (at least by that time) Oracle DLLs that get the app built and run under VS2015.</p>
  
  <p>The closest post is here: <a href="https://stackoverflow.com/questions/30110671/passing-oracle-udt-to-stored-procedure-throws-error-on-executenonquery">Passing Oracle UDT to stored procedure throws error on ExecuteNonQuery</a> but it didn't have a solution.</p>