2

Protobuf-netには、クラスのパブリックフィールドをシリアル化するオプションがあります

[ProtoContract(ImplicitFields = ImplicitFields.AllPublic)]
public class Customer
{

}

ProtoBufがほとんどのDTOで機能するようにするには、この属性を各クラスに追加する必要がありました。グローバルに設定する方法はありますか?シリアル化されるクラスにProtoContractやDataContractなどの属性がない場合、デフォルトで「ImplicitFields.AllPublic」が使用されますか?

4

1 に答える 1

2

いいえ、現在サポートされていません。ただし、 v2では、実行時にタイプについて通知することができます。

RuntimeTypeModel.Default.Add(typeof(Customer), false).Add({fields});

しかし、現在、そこから受け入れるオプションはありませんImplicitFields(これは単なる見落としであり、将来のビルドで追加される予定です)。

また、新しいタイプが最初に表示されたときにトリガーされるイベントを追加することについて、数人の人と話し合いました。これにより、イベントをサブスクライブすることでこれを行うことができます。しかし、それはまだ書かれていません。

于 2012-06-20T08:18:34.567 に答える