複数のパラメータを受け取っているメソッドがあります。属性を持つメソッドのシグネチャは次のようになります。WebAPIを使用するHttp Postが原因で「HttpOperationHandlerFactoryが入力パラメータを判別できません...」
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
public int AddUser(string firstName, string lastName, string emailaddress) { // actions here }
しかし、私はこの方法を使用する場合、私は次の例外を取得:
をHttpOperationHandlerFactoryがあるべき入力 パラメータを決定することができませんサービス操作 '開始'のための要求メッセージ内容 に関連付けられています。操作が要求メッセージ内の コンテンツを期待しない場合は、 操作でHTTP GETメソッドを使用してください。それ以外の場合は、いずれか1つの入力パラメータを確認してください、それが「本当」または次のいずれかに割り当て あるタイプであるに設定 IsContentParameterプロパティですしていますのでHttpContent、ObjectContent`1、
、私が作成しました渡されるカスタムオブジェクト(例えば、以下のように)この新しい署名を使用して
[DataContract]
public class UserToAdd {
[DataMember] public string firstName { get; set; }
[DataMember] public string lastName { get; set; }
[DataMember] public string emailAddress { get; set; }
}
:。私は404を取得し、それを行うとき
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
public int AddUser(UserToAdd user) { // actions here }
それは私がワットできないようですに。助言がありますか?
確かに、HttpOperationHandlerとWebInvokeはASP.NET Web APIではサポートされなくなっています。 OperationHandlerはActionFiltersに置き換えられ、WebInvokeはMVCルーティングに置き換えられます。 –
それはおそらく私の問題です。すばらしいです。私は今、私は変換するだろうと思う。ありがとう! –
注入用にプログラマチックにServiceRouteを作成している場合、私はもはやHttpServiceHostFactoryを使用しませんか? –