获取调用C#方法的实例

2024-03-17

我正在寻找一种算法,可以在该方法中获取调用该方法的对象。

例如:

public class Class1 {

    public void Method () {
        //the question
        object a = ...;//the object that called the method (in this case object1)
        //other instructions
    }

}

public class Class2 {

    public Class2 () {
        Class1 myClass1 = new Class1();
        myClass1.Method();
    }

    public static void Main () {
        Class2 object1 = new Class2();
        //...
    }

}

有什么办法可以做到这一点吗?


这是如何执行此操作的示例...

...
using System.Diagnostics;
...

public class MyClass
{
/*...*/
    //default level of two, will be 2 levels up from the GetCaller function.
    private static string GetCaller(int level = 2)
    {
        var m = new StackTrace().GetFrame(level).GetMethod();

        // .Name is the name only, .FullName includes the namespace
        var className = m.DeclaringType.FullName;

        //the method/function name you are looking for.
        var methodName = m.Name;

        //returns a composite of the namespace, class and method name.
        return className + "->" + methodName;
    }

    public void DoSomething() {
        //get the name of the class/method that called me.
        var whoCalledMe = GetCaller();
        //...
    }
/*...*/
}

发布此内容是因为我花了一段时间才找到自己想要的东西。我在一些静态记录器方法中使用它......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取调用C#方法的实例 的相关文章

  • 为什么找不到ImageView类?

    当我转到图形布局时 我在创建第一个 Android 应用程序 pdf Android Application Development for For Dummies 中的静默切换模式 时遇到了麻烦 在 main xml 文件中插入了 Ima
  • 使用 gcc 的中间 GIMPLE 格式

    根据本文 http en wikipedia org wiki Intermediate languagegcc 在生成代码之前使用多种中间格式 我读到 GIMPLE 格式使用三个地址代码 这似乎是最容易使用的中间语言 但我需要更多细节 因
  • 为什么json序列化器不符合多态性?

    我在 NET 4 5 Windows 应用商店应用程序中使用库存 JSON 序列化器 System Runtime Serialization Json DataContractJsonSerializer 我有一个由 API 提供商提供的
  • 不带()的sizeof有什么作用? [复制]

    这个问题在这里已经有答案了 作者是这个问题 https stackoverflow com questions 18898410 2 dimensional array simple understanding当我问他什么时 他只是取笑我s
  • 来自 RAZOR 中不同文件夹的 RenderPartial

    我一直在尝试将我的 aspx 页面转换为 cshtml 并且在从另一个文件夹渲染部分页面时遇到问题 我以前做过的事 我认为等价的是 Html RenderPartial Views Inquiry InquiryList cshtml Mo
  • codecvt 不是 std 标头吗?

    此代码使用 Visual C 11 进行编译 并在 Windows 7 上按预期运行 但无法使用 Windows 7 上的 MinGW 4 7 0 或 Linux 上的 gcc 4 8 0 进行编译 编译用 std c 11 flag in
  • C++:初始化结构体并设置函数指针

    我正在尝试使用函数指针初始化结构 但是除非使用全局函数完成 否则我很难这样做 以下代码有效 float tester float v return 2 0f v struct MyClass Example typedef float My
  • 将密码存储到sql中的最佳方法

    在我当前的 C Windows 应用程序中 密码已以纯文本形式存储 这显然不好 所以我只想知道加密密码并存储到 SQL Server 中的最佳方法是什么 我读到使用哈希 盐更好 但我觉得sql 2005中的 EncryptByPassPhr
  • 如何在 TargetFrameworks 标记中每个框架运行一次的目标之前创建仅运行一次而不是一次的 MSBuild 目标?

    我有一个我部分拥有的代码生成器工具 现在 csproj 文件可以在其中列出多个目标框架并构建所有这些框架 我试图弄清楚如何使 MSBuild 目标仅在每个目标中生成一次代码无论列出了多少个目标框架 都将运行构建 并让每个目标框架的编译等待代
  • 从 C++ 中的 std::string 获取字节

    我正在一个 C 非托管项目中工作 我需要知道如何获取像 一些要加密的数据 这样的字符串并获取一个 byte 数组 我将用它作为加密的源 在 C 中我做 for int i 0 i lt text Length i buffer i byte
  • 如何测试抽象类的受保护抽象方法?

    我一直在研究测试名为的抽象类的最佳方法TabsActionFilter 我保证继承自的类TabsActionFilter将有一个名为GetCustomer 在实践中 这种设计似乎效果很好 我遇到的一些问题是弄清楚如何测试OnActionEx
  • 使用事件处理程序与覆盖事件触发方法

    我正在创建 Button 的子类 并希望向其某些事件 例如 OnClick 添加自定义功能 哪种方式更理想 我是否重写 OnClick protected override void OnClick EventArgs e base OnC
  • 在函数内部使用时,c 数组大小会发生变化

    我有这段代码 include
  • 如何检查单元格是否为空 (Excel\VisualC#)

    我的目标是逐行检查Sheet1为了发现有多少行 所以我放了一个 do while 一旦到达空白单元格就应该停止 Example 第 1 行数据第2行数据第3行数据第4行数据第5行数据 第 6 行数据第7行数据 在本例中 我只需要前 5 行
  • Eclipse 调试模式下的 GDB 找不到 stdlib/rand.c

    我试图让 gdb 在 ubuntu 上与 eclipse cdt 一起运行 以开始调试一些简单的程序 所以我做了我认为必要的步骤来让它运行 1 创建可执行项目 2 Compile 3 Run 4 创建文件 gdbinit 并将其放在主项目文
  • Qt、PushButton、id 属性?有什么方法可以知道点击了哪个按钮

    void MainWindow addRadioToUI int button cunter 4 while database isEmpty button cunter QPushButton one new QPushButton Pl
  • 指向数组的指针 int (*ptr)[]

    我想了解指向数组的指针如何工作 代码片段 include
  • 从 C++ 检索 Python 类型

    这个问题实际上是以下两个问题的延伸 如何在 Python 中实现 C 类 以供 C 调用 https stackoverflow com questions 9040669 how can i implement a c class in
  • .NET Web API - 添加日志记录

    我正在寻找有关处理 API 日志记录的最佳方法的帮助 我想将所有请求和响应记录到 sql 或文本文件 如果这是最好的方法 目前我已经在 SQL Server 的日志表中插入一行 我使用名为 LogAction 的静态方法来执行此操作 并在
  • 如何将谓词作为参数传递#

    如何将谓词传递到方法中 但在没有传递谓词的情况下仍使其工作 我想也许是这样的 但似乎并不正确 private bool NoFilter return true private List

随机推荐

  • 如何获取java中创建的日期图片

    我想提取 jpg 文件的创建日期 Java 有 File 对象的 lastModified 方法 但似乎不支持从文件中提取创建日期 我相信这些信息存储在文件中 因为当我将鼠标指针悬停在 Win XP 中的文件上时看到的日期与我在 DOS 中
  • 派生类的成员函数是否继承了基类的虚拟性?

    假设我们有以下两个类 A 是具有虚拟析构函数的基类 B 是其析构函数没有 virtual 限定符的派生类 我的问题是 如果我要从 B 派生更多类 B 的析构函数是否会自动继承虚拟性 或者我需要在 B class A public A std
  • Heroku 已成功部署,但我仍然没有运行任何 Web 进程

    我正在尝试将电报机器人推入 Heroku 这些是我的文件夹中的文件 new bot requirements txt Procfile worker python new bot py init py empty new bot py en
  • Zend Framework 路由:参数数量未知

    我正在尝试为 N 级类别深度编写一条路线 因此 通常的类别 URL 如下所示 http website my category my subcategory my subcategory level3 my subcategory leve
  • (UWP) 将网格另存为 png

    我正在开发一个 UWP 应用程序 它有一个带有子项 图像和文本块的网格 我有两件事想要实现并需要帮助 如何使用预定义名称将 Grid 元素及其子内容作为图像 最好是 PNG 保存在本地文件夹中 如何检索此保存的图像 然后将其作为附件与其他兼
  • 为什么这个简单的连接查询使用子查询会明显更快?

    我有两张桌子 order details这是 100 000 行 并且outbound即 10 000 行 我需要加入他们的专栏order number 两者都是 VARCHAR 50 order number 在出站表中不唯一 CREAT
  • 如何根据返回值执行不同的查询?

    我有一个足球比赛列表 定义如下 id datetime status gameweek round id home team id 1 2019 03 31 00 00 00 1 29 12696 1243 2 2019 03 31 00
  • 如何在Python中获取所有直接子目录

    我正在尝试编写一个简单的Python脚本 它将所有子目录中的index tpl复制到index html 有一些例外 我因尝试获取子目录列表而陷入困境 import os def get immediate subdirectories a
  • 在两个不同的头文件中的两个结构中包含循环依赖项是否错误?

    我有一个非常大的程序无法编译 我怀疑它与跨结构的循环依赖关系有关 当我像下面这样编码时 它不会编译 foo h ifndef FOO define FOO include bar h typedef struct foo Foo struc
  • 创建模型时用 laravel 返回模型

    我需要将保存为 json 的新模型发送到前面 但我看不到响应中的列organizationid 这是我的模型 class Organization extends Model protected table core organizatio
  • 强制纵向模式

    好吧 由于没有人回答我之前的问题 我开始相信可能没有简单的方法可以做到这一点 但我很乐观 这是我的问题 在我的应用程序中 我使用常规 UIButton 从 ViewControllerOne 切换到 ViewControllerTwo Vi
  • 用于动态创建元素的 jQuery CSS()

    我正在使用 jQuery CSS 函数来设置一些元素的样式 element css style 这是可行的 但部分元素是在页面加载后动态创建的 这应该是 element live created function this css styl
  • Code First 一对多关系的多个外键

    我在使用 Entity Framework 6 Code First Fluent API 时遇到了一些不符合惯例的问题 一个典型的例子是我有一个名为软件的实体 我不希望数据库表被称为 Softwares 它应该被称为软件 但也有一些其他的
  • 将 ${my.property} 计算为 @Value 注释中的 SpEL 表达式

    长话短说 有没有办法解释由以下结果产生的字符串 my property 作为一个 SpEL 表达式 Value不使用转换器的注释 例如就像是 Value my property 我有一个抽象工厂 简化的 可以让我构建一些公共对象 这些对象是
  • 如何在Android即时应用程序中存储数据并在已安装的应用程序中恢复它

    据谷歌称 开发即时应用程序受到迷药 最佳实践 is 安装应用程序后保留用户状态 https developer android com topic instant apps ux best practices html keep user
  • 在 PowerShell 中通过引用传递/更新哈希表和数组

    当我了解 Perl 和 PowerShell 的不同之处时 我试图通过引用确定传递列表和更新列表之间的差异 我think我现在明白了 PowerShell 方面的 通过引用传递哈希表 调用函数时 不需要在表名前添加 ref 在函数内 表的名
  • 有什么方法可以获取模块中定义的函数列表?

    是否有任何内省的魔法可以给我一个模块中定义的函数列表 module Foo function foo foo end function bar bar end end 一些神话般的功能 例如 functions in Foo 这将返回 fo
  • 仅查看当前用户对象的列表,Django REST

    我有 2 个视图 notes 和 notes 在注释模型中models py我有所有者变量 用于存储所有者的登录信息 因为我想要有很多用户 我不想让他们看到别人的笔记 所以我创建了权限 class IsOwner permissions B
  • 删除 python 列表中的重复项但记住索引

    如何删除列表中的重复项 保留项目的原始顺序并记住列表中任何项目的第一个索引 例如 删除重复项 1 1 2 3 yields 1 2 3 但我需要记住索引 0 2 3 我正在使用Python 2 7 我会以不同的方式解决这个问题并使用Orde
  • 获取调用C#方法的实例

    我正在寻找一种算法 可以在该方法中获取调用该方法的对象 例如 public class Class1 public void Method the question object a the object that called the m