title: Passing object of class defined in assembly1 to assembly2, without changing assembly1
body: <p>I am trying to create tools for a game to learn, as well as improve my own playing experience. </p>
  
  <p>The primary .NET assembly, csass.dll, that controls the client is heavily obfuscated, and I have no control over this .dll-file at all and reading it's code is very time consuming. The game also includes a mainapi.dll which handles the communication between server and client. I have full control over this assembly and I can listen to the servers responses and send my own requests, which already gives me some pretty nice functionality, however there are some limitations I'd like to work around.</p>
  
  <p>csass.dll references mainapi.dll, by default mainapi does not reference csass. In csass.dll there is a class, let's call it <code>clickHandler</code>, that has a public, non-static method <code>ClickObj()</code> of return type <code>void</code>. I want to call this method from within mainapi.dll, but I have no idea how to go about this, given that I have to leave csass.dll untouched.</p>
  
  <p>Are there any feasible ways to 'retrieve' a <code>clickHandler</code> object (to then call its <code>ClickObj()</code> method) from within the mainapi assembly, without making any changes in csass.dll? Appreciate any and all input!</p>