CodeGuru123 wrote:

I know some say to put your protected IP into native .dll's and invoke them, however if your calling .net exe is still reversable, the methods of accessing/using that .dll are still visible.

Get your native entry points to look at the calling assembly's file, take a hash and compare it to your code, and do useful things only if there's a match.