Overview
Plain old CLR オブジェクト、または Plain old クラス オブジェクト(POCO)は、フレームワーク固有の基本クラスやインターフェースから機能を継承しない単純なクラス オブジェクトです。 アプリケーションで POCO が使用される場合は、C# Analyzer を使用してそれらを JSON オブジェクトとしてプレビューできます。
POCO について詳しくは、Wikipedia の POCO ページ と、.NET/C#ドライバーのドキュメントの「POCO で操作」のページを参照してください。
JSON としてプレビュー
次のコード サンプルは、POCO クラスの定義とそれに対応する JSON の変換の例を示しています。 POCO を JSON でプレビューすると、 BsonIdやBsonElementなどの BSON 直列化属性が直列化中に結果となる BSON の形状をどのように変更するかが確認できます。
class Order { [] public int OrderNumber { get; set; } [] public int CustomerId { get; set; } public string Date { get; set; } [] public string Email { get; set; } }
{ "_id": 6783456, "customer_id": 678234, "Date": "06/03/2023" }
Tip
サンプル データ
C# Analyzer には、特定の一般的なプロパティ名に対する事前定義されたサンプル値が含まれています。 POCO でこれらのプロパティ名を使用すると、アナライザは JSON 出力のサンプル値を使用します。 事前にサンプル値が定義されていないプロパティ名に対して、アナライザはプロパティのデータ型に一致するランダム値を使用します。
サンプル値を持つプロパティ名のリストについては、 MongoDB C# Analyzer Githubリポジトリ のJSONサンプル値ファイル を参照してください。
Visual Studio での POCO のプレビュー
Visual Studio で POCO をプレビューするには、次のアクションを実行します。
「 MongoDB C# Analyzer のインストール」ガイドに記載されているように C# Analyzer をインストールします。
POCO クラスを定義します。
カーソルをクラス定義の最初の単語の下の ...省略記号注釈に移動すると、JSON の翻訳を含む情報メッセージが表示されます。
次の対応するタブをクリックすると、情報メッセージが表示されるかどうかにかかわらず、POCO クラスの定義が表示されます。
サポートされていない POCO
POCO直列化設定が正しく構成されていない場合、 C# Analyzer は MAPOCO2001 警告を出力します。
次のコード スニペットには、boolデータ型 のプロパティで [BsonTimeSpanOptions] 属性を使用する POCO が含まれています。
public class NotSupportedPoco { [] public bool InStock { get; set; } }
次のスクリーンショットは、注釈付きのコードと、注釈にカーソルを合わせると表示される警告を示しています。

Tip
エラー リスト パネル
Visual Studio for Windowsを使用している場合は、 エラー リストウィンドウでC# Analyzer からの出力を表示できます。
詳細については、 Microsoftのエラー リスト ウィンドウを参照してください。

