Изменить имя элемента данных в зависимости от метода - PullRequest
0 голосов
/ 06 апреля 2011
 [DataContract()]
 public class Contract
 {
    .........
Some Properties with DataMembers Attribute.
    ............
    ..............

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

У меня есть вышеупомянутый класс, и у меня есть два веб-метода (операции)

В 1-м веб-методе я хочу представить Name как FirstName, а во 2-м веб-методе - Name как LastName.

Я не хочу создавать отдельные контракты на данные.

Скажите, пожалуйста, как этого добиться?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2011

Вы также можете реализовать суррогат для этого особого случая во время сериализации. В качестве примера см. образец суррогата контракта данных .

0 голосов
/ 06 апреля 2011

Вы можете использовать отражение и изменять значение атрибута во время выполнения в зависимости от того, какой метод вы используете в данный момент.Проверьте эти ссылки в StackOverflow:

Как установить значения атрибутов с помощью отражения Изменить параметр атрибута во время выполнения

Но я думаю, что лучший способ будетлибо иметь 2 отдельных контракта, либо создать контракт с обоими свойствами.

...