C# 在NET中,是否可以在使用ContextBoundObject调用的方法中获取调用方的对象引用(实例而不是类)

C# 在NET中,是否可以在使用ContextBoundObject调用的方法中获取调用方的对象引用(实例而不是类),c#,.net,C#,.net,使用堆栈跟踪只能给类而不是调用方的实例。所以我想知道是否有使用ContextBoundObject的解决方案,因为问题是关于上下文的 但是ContextBoundObject看起来非常复杂,我无法理解如何使用它,所以有人知道它是否可行吗 更新:我对这里的AOP不感兴趣,只是获取对调用方法的对象实例的引用。AOP和我的问题不同,所以我不认为带有AOP的文章回答了我的问题,但我有“直觉”,ContextBoundObject可能是一个答案,但我不确定我的问题:) 在现实世界中,如果你不知道谁在打电话

使用堆栈跟踪只能给类而不是调用方的实例。所以我想知道是否有使用ContextBoundObject的解决方案,因为问题是关于上下文的

但是ContextBoundObject看起来非常复杂,我无法理解如何使用它,所以有人知道它是否可行吗

更新:我对这里的AOP不感兴趣,只是获取对调用方法的对象实例的引用。AOP和我的问题不同,所以我不认为带有AOP的文章回答了我的问题,但我有“直觉”,ContextBoundObject可能是一个答案,但我不确定我的问题:)


在现实世界中,如果你不知道谁在打电话给你,你能想象吗:)编程语言应该公开呼叫者实例,因为某些用例可能需要它。

一般来说,这是不可能的,因为方法内联和垃圾收集。

你能更详细地解释一下你想实现什么以及到目前为止你尝试了什么吗?你可能想取消标记AOP,呃:)@Amit Mittal,比方说我想记录调用方实例属性或回调它的某个方法。如果真的需要,您始终可以将实例作为参数传递?为什么?如果.NET运行时没有对某个实例的任何引用,它如何在该实例上执行方法?他怎么能在不引用对象实例的情况下拦截方法调用呢?如果.Net运行时可以使用此引用,为什么它不能提供(如果上下文无效,只抛出一些异常)?您可以想象在现实世界中,如果您不知道谁在打电话给您:)编程语言应该公开调用方实例,因为某些用例可能需要它。