c# - 静态类的静态方法如何知道调用者?

标签 c# .net c#-4.0 static static-methods

假设我在其中有一个静态类和一个静态方法。它必须由 10 个不同的类访问。但是静态类如何知道谁调用了它:(

这是一个面试问题....请正确改写并回答我,我是新来的:(

最佳答案

由于 C# 没有适当的元对象系统,我知道的唯一方法是通过反射。下面的思路应该给出思路:

public static string GetCaller()
{
    var trace = new StackTrace(2);
    var frame = trace.GetFrame(0);
    var caller = frame.GetMethod();
    var callingClass = caller.DeclaringType.Name;
    var callingMethod = caller.Name;
    return String.Format("Called by {0}.{1}", callingClass, callingMethod);
}

关于c# - 静态类的静态方法如何知道调用者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11594140/

相关文章:

c# - 删除 WPF 中的硬编码文件夹路径

C#/AvaloniaUI - 打开文件夹对话框

c# - 是否可以将 URL 解析为它的复合组件?

c# - 我怎样才能让我的碰撞更稳固?

c# - 160位哈希算术运算的最高有效字节是多少?

c# - .NET 有链接器吗?

c# - SQL:指定的转换无效

c# - 在 Windows 应用程序上验证代码签名证书

.net - 如何在解决方案中的所有项目之间共享 LocalDB 实例?

c# - Thread.CurrentThread.Join() 什么时候有意义?