同じ基本インターフェイスを継承するいくつかのインターフェイスを実装するクラスに対してシリアル化したいと思います。現在私はBinaryFormatterを使用していますが、proto-buf .NETを使いたいです。しかし、私は現在、私はこのような問題点と同様の問題に直面するだろうと思う:私は現在、考える how to serialize a class implements two interfaces who have same based interfaceProto-buf .NET複雑な継承インターフェイスのシリアル化
唯一の可能な解決策は、私は私の複雑なクラスを作成するために使用するシンプルなデータクラスをシリアライズ私のクラスのラッパーになります。
私が引用した例では、私はこのような構造を持っているように、さらにそれを説明してみましょう:私は、これは原始bufには現在可能ではないと思ったよう
public interface IProduct
{
string SomeMethod();
}
public interface ISimpleProduct : IProduct
{
int SomeProperty { get; }
}
public interface IConstructionProduct : IProduct
{
int AnotherProperty {get;
}
public class ConcreteProduct : ISimpleProduct , IConstructionProduct
{
int SomeProperty {get; set;}
int AnotherProperty {get; set;}
string SomeMethod()
{
return "A concrete Product";
}
}
は、今私は、ConcreteProductをシリアル化したいです.NET私はこのような、ラッパーのデータクラスを持って検討していた。
public class ProductData
{
int[] PropertyValues { get; set;}
}
とIProductInterfaceにそれぞれ具体的な製品を構築するためのメソッドを追加するために、
のようなもちろん、ProductDataは現実のほうが洗練されていますが、コンセプトのためだけです。 ProductDataを今すぐシリアル化します。私は、Product ConcreteProductクラスのインターフェース設定を変更したくないのです。後でこれらのインターフェースが必要になるからです。このアプローチについて私が気に入っているのは、拡張機能の問題はBuildProductの実装で扱うことができるということです。 もう一度、私は初心者です、何かがただのナンセンスなら、それを残念と私を修正してください。
@ Marc、私はあなたがその物のためにたくさんのことを書いていることを知っていますが、DataTableのような他の投稿(私はまだproto-bufを使っていません)私のために多くの時間。
シリアル化したいモデルの種類の例を挙げることができますか?私は正確な答えを与えることができますか? (著者、protobuf-net) –