我有一个WCF REST服务:
[ServiceContract]
public IService
{
[WebGet]
[OperationContract]
Data GetData(UserInfo userInfo);
}
UserInfo
是一个类:
public class UserInfo
{
public string UserName { get; set; }
public string Password { get; set; }
}
我想要从特定的HTTP标头填充UserName
和Password
属性,而不是从请求正文填充。我怎么能实现这个呢?
答案 0 :(得分:2)
WCF提供了一些可扩展性点,可能对此方案有所帮助。我建议您检查IParameterInspector或IOperationInvoker。两者都可以使用输入参数。然后,您必须创建IOperationBehavior作为Attribute,并使用此属性标记您的方法。但我希望这种情况会有一个更大的问题。您正在使用WebGet和复杂类型,并且您没有任何将映射到参数的Uri模板 - 这是不可能的。 WebGet操作只能使用基本类型的参数,当您在操作中创建此类参数时,必须在Uri模板中提及它,否则会触发异常。