gpt4 book ai didi

reflection - 如何从 Rust 函数内部检查它是直接调用还是由 C# 代码中的 Invoke() 调用?

转载 作者:行者123 更新时间:2023-11-29 08:15:50 25 4
gpt4 key购买 nike

我在 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"。我不太确定您是否可以区分这两者。

最佳答案

不,如果不做一些非常奇怪的事情,这是不可能的,这绝对不会便携、面向 future 或以任何方式稳健。

在 Rust 内部,函数调用就是函数调用,无论使用哪个外部 API 来调用它。

关于reflection - 如何从 Rust 函数内部检查它是直接调用还是由 C# 代码中的 Invoke() 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52246271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com