[解決済み] .Net Core 3.0でIMvcBuilder AddJsonOptionsはどこに行ったのですか?
質問
ASP Web API プロジェクトを .NET Framework からアップグレードしたところです。
Net core 2.0
から
3.0
. 私は
services.AddMvc()
.AddJsonOptions(options =>options.SerializerSettings.ContractResolver
= new DefaultContractResolver());
以前は、シリアライズされたJSONを確実に小文字にするために
3.0にアップグレードした後、このエラーが発生します。
エラー CS1061 'IMvcBuilder' は、以下の定義を含んでいません。 AddJsonOptions'およびアクセス可能な拡張メソッド 'AddJsonOptions' はありません。 タイプ 'IMvcBuilder' の第一引数を受け入れるものが見つかりました。 usingディレクティブかアセンブリ参照が足りないのでは?)
によると Asp.Net Core 2.2 の MvcJsonOptions 用に AddJsonOptions を追加しました。 AddJsonOptions 拡張メソッドは マイクロソフト.AspNetCore.Mvc.Formatters.Json nuget パッケージを使用しています。 これをインストール/再インストールしてみましたが、まだメソッドを解決することができません。 興味深いことに、intellisense では Microsoft.AspNetCore.Mvc.Formatters が表示されるだけです。 Xml を追加したにも関わらず、using文を追加しようとすると Json nuget パッケージを使用します。
何が起こっているのか、何か思い当たることはありますか? その ドキュメンテーション に対して AddJsonOptions は.Net 2.2までしか対応していないので、おそらくこのメソッドは3.0では非推奨となり、他の設定メカニズムが採用されたのではないでしょうか?
解決方法は?
ASP.NET Core 3.0 の一部として、チームは Json.NET をデフォルトで含めることから脱却しました。そのことについては、一般的には Microsoft.AspNetCore.Appの変更点に関するお知らせ .
ASP.NET Core 3.0 および .NET Core 3.0 には、Json.NET の代わりに、もう少しパフォーマンスに重点を置いた別の JSON API が含まれています。その詳細については "The future of JSON in .NET Core 3.0 "についてのお知らせです。 .
ASP.NET Core の新しいテンプレートには Json.NET がバンドルされなくなりますが、新しい JSON ライブラリの代わりにそれを使用するようにプロジェクトを簡単に再設定することができます。これは、古いプロジェクトとの互換性の両方にとって重要であり、また、新しいライブラリは完全な置き換えになるはずではないので、そこに完全な機能セットを見ることはありません。
ASP.NET Core 3.0 プロジェクトを Json.NET で再構成するためには、NuGet リファレンスを
Microsoft.AspNetCore.Mvc.NewtonsoftJson
これは、必要なビットがすべて含まれているパッケージです。そして、スタートアップの
ConfigureServices
のように、MVCを設定する必要があります。
services.AddControllers()
.AddNewtonsoftJson();
これは、MVCコントローラを設定し、その新しいAPIの代わりにJson.NETを使用するように設定するものです。コントローラの代わりに、別のMVCオーバーロードを使用することもできます(例:ビューを持つコントローラ、Razorページなど)。その
AddNewtonsoftJson
メソッドには、Json.NETのオプションを設定するためのオーバーロードがあります。
AddJsonOptions
をASP.NET Core 2.xで使用することができます。
services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
関連
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】HttpClientがPostAsJsonAsyncメソッドに対応していない C#
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み】Entity Framework。このコマンドに関連するオープンなDataReaderがすでに存在します。