2010-10-12 52 views
1

我有一个WCF REST服务:HTTP头可以绑定到REST WCF服务参数吗?

[ServiceContract] 
public IService 
{ 
    [WebGet] 
    [OperationContract] 
    Data GetData(UserInfo userInfo); 
} 

UserInfo是一类:

public class UserInfo 
{ 
    public string UserName { get; set; } 
    public string Password { get; set; } 
} 

我想UserNamePassword性质从特定HTTP标头填充而不是从请求主体。我怎么能实现这个?

回答

2

WCF提供了一些可用于此场景的扩展点。我建议你应该检查IParameterInspectorIOperationInvoker。两者都可以处理输入参数。然后你将不得不创建IOperationBehavior作为属性,并用这个属性标记你的方法。但我预计这种情况会有更大的问题。您正在使用WebGet和复杂类型,并且您没有任何将映射到参数的Uri模板 - 这是不可能的。 WebGet操作只能使用带有基本类型的参数,并且在操作中创建此类参数时,必须在Uri模板中提及它,否则会触发异常。