register_function richiede un punto di ingresso dll e non è possibile generarlo nel codice gestito.
Puoi scrivere una DLL wrapper C++/CLi per avere punti di ingresso nativi per il tuo codice gestito, ma se stai iniziando da zero, perché non scrivere semplicemente una semplice dll nativa.