#c# #wcf
#c# #wcf
Вопрос:
Я нашел сообщение, объясняющее, как поместить
[OperationContract(Name = "GetDataWithNumber")]
public User GetName(int id)
[OperationContract(Name = "GetDataWithString")]
public User GetName(string email)
Это не сработает, если я использую Restfull service!
[OperationContract(Name = "GetDataWithNumber")]
[WebGet(UriTemplate = "Service/GetName?id={id}", ResponseFormat = WebMessageFormat.Json)]
public User GetName(int id)
У кого-нибудь есть решение для этого?
Ответ №1:
Я бы рекомендовал использовать только два метода:
[OperationContract(Name = "GetDataWithNumber")]
public User GetNameFromId(int id)
[OperationContract(Name = "GetDataWithString")]
public User GetNameFromEmail(string email)
Это устранит путаницу, а также будет более понятным. Поскольку служба REST будет переводить из текстового представления, явный характер очень полезен с точки зрения удобства обслуживания.
Комментарии:
1. Я хочу использовать тот же метод только потому, что пользователь может отправить мне идентификатор или адрес электронной почты.
2. @HardCode: затем вам нужно будет создать один метод, который принимает строку, и определить внутри метода, является ли это идентификатором или электронной почтой. При этом я думаю, что лучше использовать два и сделать ваш API явным — это более понятно для конечного пользователя И для вас.