检查您是否在wcf服务中

本文关键字:服务 wcf 是否 检查 | 更新日期: 2023-09-27 18:02:21

我使用WCF服务,想知道是否可以为调用者和服务使用OperationContract方法。因此,我想知道代码是在应用程序中运行还是在服务中运行的最好方法。

:

[ServiceContract]
public interface IService
{
    [OperationContract]
    bool ServiceMethod(string param);
}
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single,
InstanceContextMode = InstanceContextMode.Single, UseSynchronizationContext=false)]
public class Service : IService
{
    bool ServiceMethod(string param)
    {
      if(!isInWcfService) //How to do this?
      {
        //Call this ServiceMethod in WCF Service
      }
      else
      {
        //Do the work
      }
    }
  }

由于调用程序和服务都知道这个类,我认为如果两者都只调用这一个方法,并且它自己决定是否必须将调用转发给服务还是可以直接执行工作,可能会更容易。

谢谢!

检查您是否在wcf服务中

您可以通过检查OperationContext.Current来检查您是否在WCF服务中,这是一个与ASP中的HttpContext.Current类似的WCF服务类。净:

if (OperationContext.Current != null)
{
    // inside WCF
}
else
{
    // not
}