【发布时间】:2011-02-18 05:01:42
【问题描述】:
我不是在寻找一种使用“SetData”方法将值与线程相关联的方法。
我需要存储一些只存在于调用方法范围内的数据,可以是直接父级或在堆栈上进行的任何其他调用。 例如:
void SomeMethod()
{
string someInfo = "someInfo";
SomeOtherMethod();
object data = GetDataOnCurrentScope("someKey");
}
void SomeOtherMethod()
{
SetDataOnParentScope("someKey", somevalue);
}
在这种情况下,“someInfo”局部变量和带有“someKey”键的数据集都将在“SomeMethod”返回后消失。这样的事情可能吗?这可能违反堆栈规则,但谁知道是否有人有想法......
obs:目前,我想唯一的方法是让编译器在每个方法的调用堆栈的开头声明对字典的引用。当方法返回时,该字典将有资格进行垃圾收集。
【问题讨论】:
-
简单地返回一个值是否存在问题,您可能嵌套了多个方法,并且需要在一个或多个其他级别(调用堆栈上下)使用该值?跨度>
-
不是这样的,我很难在方法拦截中使用它