[Transaction]
class A{
[AutoComplete]
void x(){
new B().y();
}
}
[Transaction]
class B{
[AutoComplete]
vlid y();
}
事务传递是在方法间的,y()中怎么知道其上层调用中的事务呢?
思路1:
FrameStack是方法调用的层次关系,顺藤摸瓜,找到最近的一个有事务的方法,它所在的事务就是需要的.问题是怎么得到那个方法的事务?方法间除了显式的参数,有没有别的方法向后代方法传递信息?
思路2:
Context.Remoting中的Context是指一个上下文,比如远程客户端激活的一个对象.Context是在其整个生存周期存在的,而且服务器端方法中再激活的任何对象,都属于同一个上下文.利用ContextBoundObject可以轻松达到这个效果.如果要不同的对象有自己的事务要求(Required/Disabled...),则要求每个对象有自己的上下文.有没有更简单的方案呢?