少し先に問題を説明しましょう。サービス契約にXmlSerializerFormatAttributeが設定されているWCFサービスからJSONを返す
私は、私たちのAPIを利用しなければならないXamarinアプリケーションで作業する必要があります。 APIは、2つのエンドポイント上のWCFサービスを介して公開されており、tcpまたはbasic httpのいずれかです。 Xamarinプラットフォームの限界のため、私はHttpWebClientを使用して終了しました.WCFサービスを安心して使用する必要がありました。これは問題が浮上し始めるところです。
"rest"という名前の別のエンドポイントを定義し、DefaultOutgoingResponseFormatという名前のプロパティを介してJSONを返すように設定しました。私はいつもXMLの形で応答を得るので、このプロパティは何の効果もありません。
私がXmlSerializerFormatAttributeを削除した場合、私のサービスはJSONを返しますが、今はXMLを持っていません。これは、デフォルトの戻り値がXMLになる別のエンドポイントを作成することで簡単に修正できますが、クラスの一部が正しくシリアル化されないため、今問題を説明します。
XmlIgnoreという属性がプロパティに配置されています。 Nameという名前のプロパティとNameSpecifiedという名前の別のプロパティがあり、NameSpecifiedプロパティのプロパティ値がfalseの場合、NameプロパティはNameSpecifiedに配置されます。送信されるXMLが無駄な情報で混雑しないため、これは非常に便利です。これを保持しておきたいのは、XmlSerializerFormatAttributeを保持したいだけでなく、JSONを返すことができるということです。
これは可能ですか?
私はIDispatchMessageFormatterを見ましたが、実装するのは簡単なことではありません。例はまれであり、ショーンケースのためにJson tを使用しています。くそーWCF! – Rob