次のような方法を使用する方がよいでしょうか。
#1void AddPerson(Person p);
また
#2void AddPerson(int id, string lastName, string firstName);
説明。
私が気付いた 1 つの問題は、Web ブラウザーを AddPerson にポイントして #1 をテストすることはできませんが、#2 をテストすることはできます。
ahus1が言ったことに加えて、別の Person.xsd XML スキーマを作成することは、ほとんどの場合、良い考えです。この方法で、この Person.xsd を Invoice.xsd などの他の XML スキーマにインポートし、説明するための共通言語を作成できるからです。あなたのビジネス。
また、サービスのオーケストレーションがより簡単になります。実際には個人タイプからの特定の顧客属性が Invoice にあると想像してください。このようにして、各ステップですべての Person 属性をコピーする代わりに、たった 1 つのステップで顧客の値を他の Person 要素に割り当てることができます。
Canonical Schema SOA Pattern で、このアプローチの利点に関する良い情報を見つけることができます。
さまざまな要素の代わりに人を渡すと、将来、生年月日などで人を強化するときに簡単になります。メソッド名は同じままで、ドメインモデルを強化するか、あなたがそれを必要とする生年月日。
また、ネストされたオブジェクトを取得するとすぐに (つまり、アドレスを追加したい場合)、要素の代わりに Person がメソッドに統一された方法を提供することがわかります。
よろしく、アレクサンダー。