Изменить имя элемента данных в зависимости от метода
[DataContract()]
public class Contract
{
.........
Some Properties with DataMembers Attribute.
............
..............
[DataMember(Name = "FirstName")]
public string Name { get; set; }
}
У меня есть выше класса, и у меня есть два веб-метода (операции)
В первом веб-методе я хочу выставить имя как FirstName, а во втором веб-методе выставить имя как LastName.
Я не хочу создавать отдельные контракты данных.
Подскажите пожалуйста как этого добиться?
2 ответа
Вы также можете реализовать суррогат для этого случая в сериализации во время сериализации. В качестве примера см. Образец суррогата контракта данных.
Вы можете использовать отражение и изменять значение атрибута во время выполнения в зависимости от того, какой метод вы используете в данный момент. Проверьте эти ссылки на Stackru:
Как установить значения атрибутов, используя параметр Change Attribute отражения во время выполнения
Но я думаю, что лучшим способом было бы либо иметь 2 отдельных контракта, либо создать контракт с обоими свойствами.