2010-10-12 33 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模板中提及它,否則會觸發異常。