WCF服务 - 了解构造函数中调用的方法

Jan*_* P. 1 c# wcf

有没有可能在构造函数中识别我的服务的哪个方法被调用?

我的例子:我想构建一个可以暂停的服务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)

Jan*_*ivZ 5

我相信你所寻找的东西可以在:

OperationContext.Current.IncomingMessageHeaders.Action
Run Code Online (Sandbox Code Playgroud)

这将暴露被调用的操作.这是你需要的吗?