私はJSONをRESTサービスから逆シリアル化しようとしています。 JSONを構造体にデシリアライズしています。構造体にはパブリックプロパティが含まれています。私は、基本的なstring
/int
オブジェクトを隠し、各値に正しいオブジェクトを使用したいと考えています。これを行うにあたり、私は元のプロパティを隠していましたが、それにもかかわらず、それらのプロパティを設定する方法を探したかったのです。私はここでrelevant answerが見つかりました。問題は、デシリアライズ時にプライベートプロパティに実際に値が割り当てられないことです。JSON.NETはプライベートプロパティに逆シリアル化されません
その後、自分でContractResolver
を作成しようとしました。 CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
のコードが見つかりました。
var prop = base.CreateProperty(member, memberSerialization);
if (!prop.Writable)
{
var property = member as PropertyInfo;
if (property != null)
{
var hasPrivateSetter = property.GetSetMethod(true) != null;
prop.Writable = hasPrivateSetter;
}
}
return prop;
これは完全なプライベートプロパティにはまだ割り当てられません。私が見つけられたすべてのソリューションは、これらの2つのソリューションのバリエーションを使用しているので、ここから進める方法はわかりません。私はどのように進めるべきですか?
EDIT:
私は私の問題を展示する小さな例を作成しました。 https://gist.github.com/Herbstein/9ea14e2a4d95dd5aa4430384bfeeedf3
問題を示すために[MVCE](http://stackoverflow.com/help/mcve)を作成してください。現在のところ、あなたのモデルがどのように見えるのか、契約リゾルバをセリアライザに設定するのか、実際にシリアル化を行っているのかなどは表示されていません。 –
@RBすぐにそれをやろうとしています。 – Herbstein
@ RB。私はOPでリンクされている小さな例を作成しています。可能なすべての構成を持つプログラムの出力は、空の行に過ぎません。 – Herbstein