我使用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
}
}
}
由于调用程序和服务知道这个类,我认为如果两个人都必须调用这个方法并且它决定是否必须将调用转发给服务或者只是可以工作,这可能会更容易。
谢谢!
答案 0 :(得分:2)
您可以通过选中OperationContext.Current
来检查您是否在WCF服务中,这是一个与ASP.NET中的HttpContext.Current
相当的WCF服务类:
if (OperationContext.Current != null)
{
// inside WCF
}
else
{
// not
}