タイトルのように、どのような場合にsvcutil.exeはXmlSerializerFormatAttribute
生成されたプロキシコードに適用することを決定しますか?それに関するドキュメントが見つからないので、いくつかのソースをリンクしていただければ幸いです。
2 に答える
WebサービスのスキーマがDataContractSerializerと互換性がない場合は常に、XmlSerializerが選択されます(XmlSerializerFormatAttributeが適用されます)。ユーザー「Aphelion」が回答で指摘したように、これが発生する可能性がある1つのケースは、一部のレガシーASMXWebサービスを使用している場合です。ただし、非.NETサービス(Javaベースなど)と相互運用する場合にも、これがよく見られます。ここでの最も信頼のおけるドキュメントは、実際にはhttp://msdn.microsoft.com/en-us/library/ms733112.aspxであり、スキーマでサポートされているものとサポートされていないものを正確に示しています。
はXmlSerializerFormat
、ASMX(クラシックWebサービス)との下位互換性をサポートするために使用されます。
デフォルトでは、プロキシはを使用しDataContractSerializer
ます。DataContractSerializer
WSDLドキュメントのスキーマ要素が処理できないXSDスキーマ機能を使用している場合、それはを選択しXmlSerializer
ます。
いくつかの詳細な例については、MicheleLerouxBustamanteによる「 LearningWCF」をお勧めします。