0
 [DataContract()]
 public class Contract
 {
    .........
Some Properties with DataMembers Attribute.
    ............
    ..............

  [DataMember(Name = "FirstName")]
  public string Name  {   get;   set;  }
 }

上記のクラスがあり、2 つの Web メソッド (操作) があります。

最初の Web メソッドでは Name を FirstName として公開し、2 番目の Web メソッドでは Name を LastName として公開します。

個別のデータ コントラクトを作成したくありません。

これを達成する方法を教えてください。

4

2 に答える 2

0

リフレクションを使用して、現在使用しているメソッドに応じて、実行時に属性の値を変更できます。StackOverflowでこれらのリンクをチェックしてください:

リフレクションを使用して属性値を設定する方法 実行時に属性のパラメータを変更する

しかし、最善の方法は、2つの別々の契約を結ぶか、両方のプロパティで契約を作成することだと思います。

于 2011-04-06T15:44:00.027 に答える
0

シリアル化中にこのタイプを特殊なケースにするためのサロゲートを実装することもできます。例として、データコントラクトサロゲートのサンプルを参照してください。

于 2011-04-17T04:22:47.223 に答える