更新: Ramone プロジェクトをダウンロードして自分のプロジェクトに追加し、デバッガーでアプリケーションを再度実行しました。エラーを以下に示します。
public MediaTypeWriterRegistration GetWriter(Type t, MediaType mediaType) { ...
CodecEntry エントリ = SelectWriters(t, mediaType).FirstOrDefault(); =>この行はエラーをスローします
... } CodecManager.cs でエラーが発生します。json-patch メディア タイプを認識しない理由を理解しようとしています。ライターが正しく登録されていない可能性がありますか?私はそれを調べています。問題がわかったら、教えてください。あなたはライブラリの作成者であるため、問題を簡単に把握できます。問題を見つけるには、すべてのコード ファイルとメソッドを確認する必要があります。ありがとう!
Ramone ライブラリが json-patch 操作をサポートしていることを知って興奮しましたが、試してみると、次のエラーが発生しました。
415- サポートされていないメディア タイプ
これは、RestSharp を使用したときに発生するエラーと同じです。RestSharp は json-patch とエラーをサポートしていないのではないかと考えたので、Ramone lib を試すことにしましたが、それでも同じエラーが発生します。Postman を使用して同じコマンドを実行すると機能しますが、C# でプログラムを使用して実行すると、サポートされていないメディア タイプ エラーがスローされるため、エンドポイントに問題はありません。これが私のコードです:
var authenticator = new TokenProvider("gfdsfdsfdsafdsafsadfsdrj5o97jgvegh", "sadfdsafdsafdsfgfdhgfhehrerhgJ");
JsonPatchDocument patch = new JsonPatchDocument<MetaData>();
patch.Add("/Resident2", "Boyle");
//patch.Replace("/Resident", "Boyle");
RSession = RamoneConfiguration.NewSession(new Uri("https://api.box.com"));
RSession.DefaultRequestMediaType = MediaType.ApplicationJson;
RSession.DefaultResponseMediaType = MediaType.ApplicationJson;
Ramone.Request ramonerequest = RSession.Bind("/2.0/files/323433290812/metadata");
ramonerequest.Header("Authorization", "Bearer " + authenticator.GetAccessToken(code).AccessToken);
//var ramoneresponse = ramonerequest.Patch(patch); //results in error: 405 - Method Not Allowed
var ramoneresponse = ramonerequest.Put(patch); //results in error: 415 - Unsupported Media Type
var responsebody = ramoneresponse.Body
エンドポイント情報は、http: //developers.box.com/metadata-apiで入手できます。
次の記事の json-patch セクションを参考にしました。
http://elfisk.dk/Ramone/Documentation/Ramone.pdf
ちなみに、Patch() メソッドを試してみましたが (上記の参照記事に示されているように)、「メソッドは許可されていません」という結果になったので、動作しているように見える Put() メソッドを使用しましたが、json-patch 操作のためにエラーが発生しました。
この問題を解決するためのヘルプ、ガイダンス、ヒントは高く評価されます。よろしくお願いします。
-シャム