【发布时间】:2011-12-12 04:50:40
【问题描述】:
有没有办法将自定义属性应用于可以访问 Cookies 标头的 WCF 服务方法? WCF 服务基于 REST,只能通过 HTTP 传输使用。
到目前为止,我发现获取属性以应用于我的 WCF 服务方法的唯一方法是实现 IOperationBehavior 接口。有了它,我至少可以实例化我的属性并调用 IOperationBehavior 方法,但是我如何从那里到达可以访问 HttpContext.Current 以获取 Cookie 的地方?
我的属性是:
[AttributeUsage(AttributeTargets.Method)]
public class MyAttribute : Attribute, IOperationBehavior
{
public MyAttribute()
{
int x = 1;
}
void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, System.ServiceModel.Dispatcher.DispatchOperation dispatchOperation)
{
dispatchOperation.ParameterInspectors.Add(this);
}
void IOperationBehavior.Validate(OperationDescription operationDescription)
{
var context = HttpContext.Current;
int y = 2;
}
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
var context = HttpContext.Current;
int y = 2;
}
public object BeforeCall(string operationName, object[] inputs)
{
return null;
}
}
我将它应用到我的服务方法上:
public class MyService : IMyService
{
[MyAttribute]
public bool IsAlive()
{
return true;
}
}
【问题讨论】:
标签: c# wcf custom-attributes