有没有可能在构造函数中识别我的服务的哪个方法被调用?
我的例子:我想构建一个可以暂停的服务SetPauseService(true),这样他在暂停时就不会做任何工作.我不想在每个方法中检查暂停标志,所以我试图在构造函数中存档它.我的问题是,用户必须SetPauseService(false)在服务暂停时调用再次激活服务.
[ServiceContract]
public class MyService
{
private static bool isPaused;
public MyService()
{
if (/*<Pseudo>*/ InvokedMethod != "SetPauseService" /*</Pseudo>*/)
{
if (isPaused)
{
throw new Exception("Cannot be executed, service is paused!");
}
}
}
[OperationContract]
public void SetPauseService(bool status)
{
isPaused = status;
}
[OperationContract]
public void DoWork()
{
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud)
我相信你所寻找的东西可以在:
OperationContext.Current.IncomingMessageHeaders.Action
Run Code Online (Sandbox Code Playgroud)
这将暴露被调用的操作.这是你需要的吗?