我正在这样从C#的本机DLL中调用Rust函数:
[DLLImport("rust.dll")]
public static int Foo(int i);
public static void Invoke() {
typeof(Program).GetMethod("Foo").Invoke(new object[] {null}, new object[] {1});
}
public static void Call() {
Foo(1);
}
我想检查方法是直接调用还是使用Invoke
调用。如果调用该方法,则应打印"Invoked"
,否则应打印"Called"
。我不确定是否可以区分这两件事。
答案 0 :(得分:2)
没有,这是不可能的,如果没有做一些非常奇怪的事情,那肯定是不便携的,不会过时的,或者以任何方式都不可靠。
在Rust内部,函数调用是函数调用,无论使用哪个外部API进行调用。