カスタム (および汎用) Json.net シリアライザーを実装していて、助けが必要な道のりにぶつかりました。
デシリアライザーがインターフェイスであるプロパティにマッピングしている場合、どのような種類のオブジェクトを構築してデシリアライズし、インターフェイス プロパティに配置するかを決定するにはどうすればよいでしょうか。
私は次のものを持っています:
[JsonConverter(typeof(MyCustomSerializer<foo>))]
class foo
{
int Int1 { get; set; }
IList<string> StringList {get; set; }
}
私のシリアライザーはこのオブジェクトを適切にシリアライズしますが、それが戻ってきて、json パーツをオブジェクトにマップしようとすると、JArray とインターフェースができてしまいます。
私は現在、リストのような列挙可能なものをインスタンス化しています
theList = Activator.CreateInstance(property.PropertyType);
これは逆シリアル化プロセスで動作するように作成しますが、プロパティが IList の場合、インターフェイスをインスタンス化できないというランタイムの苦情が (明らかに) 発生します。
では、このような場合に作成する具象クラスのタイプをどのように知るのでしょうか?
ありがとうございました