![]() |
1
2
这种事情也可以由 Aspect Oriented Programming . 这允许您编写可以“钩住”到类的任何/每个方法中的代码。 PostSharp 是一个用于.NET的AOP库。 |
![]() |
2
1
经过进一步的调查,正如马克所说,似乎没有纯WCF解决方案。 但是,在某些情况下,有一种解决方案是可以接受的。
如果您的应用程序可以在ASP.NET兼容模式下运行,这意味着您的WCF服务可以包含一个HTTP模块。这可以钩住BeginRequest事件,创建对象并将其存储在httpContext.current.items中。在endrequest事件上,然后我们可以检索这个对象,并调用它的dispose()方法。 |
![]() |
3
0
在客户机上,您不一定总是希望只将一个调用包装到TransactionScope或其他包装器中——也许在某个时刻,您希望将两个、三个或更多调用组合到一个“范围”中。 您可以在客户端和服务器端扩展WCF,但在我看来,这是一个非常依赖于您的实际应用程序的东西,而且几乎每次您进行这样的调用时,试图强制执行任何操作都不会真正有益。 此外,当调用完成后,WCF扩展性就真正开始了——所以您可以处理各种情况,但恐怕您不能真正将外部代码包装到任何类型的范围中。 长话短说:我不认为你想做的是很有意义的,而且我认为你甚至不能只用wcf来做这件事——你几乎必须扩展C语言(在每个方法调用之前和之后添加编译器技巧来做一些事情)。 马克 |