率直に言って、HTML の場合、保存するだけです... htmlは、事前にシリアル化されています! ただし、質問に答えるには:
protobuf-net v2 では、実行時に TypeModel を構成できます。これにより、属性やその他のいくつかのトリックを介して実行できるすべてのことが可能になります (v2 では、他に何も指定されていない場合、属性は単にモデルを操縦するのに役立ちます)。また、これらすべてを実行時に実行できるため、型を変更する必要がなく、制御外のモデルに適用できます。デフォルトのモデル インスタンスは RuntimeTypeModel.Default で、型をモデルに追加し、各 MetaType を個別に構成できます (これは Type にマップされます)。これにより、適用するメンバー (プロパティ/フィールド)、サブタイプ、コールバックなどを指定できます。
それが複雑すぎる場合は、「サロゲート」を指定して、単純な DTO を構成し、標準の変換演算子 (明示的または暗黙的) を使用して複雑なモデルと単純な DTO モデルの間で変更することもできます。
参考までに、デフォルトモデルの重要性は次のとおりですSerializer.*
。ただし、TypeModel インスタンスを使用してシリアライゼーション/デシリアライゼーションを実行する場合、同じ型に対して複数の異なる構成のモデルを使用できます。
HTML-agility-pack の完全な詳細を思い出すことはできませんが、protobuf-net を介してシナリオで使用できる主なオプションです。