Изменить имя элемента данных в зависимости от метода

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

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

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

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

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

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

2 ответа

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

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

Как установить значения атрибутов, используя параметр Change Attribute отражения во время выполнения

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

Другие вопросы по тегам