register_function requiere un punto de entrada de dll y no puede generarlo en código administrado.
Puede escribir una DLL contenedora de C++/CLi para tener puntos de entrada nativos para su código administrado, pero si está comenzando desde cero, ¿por qué no simplemente escribir una dll nativa simple?