Я разрабатывает WCF Rest Service и у меня есть это на мой ServiceContract
:Используя тот же метод PUT и POST
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "/users",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
User AddOrUpdateUser(User user);
[OperationContract]
[WebInvoke(Method = "PUT",
UriTemplate = "/users",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
User AddOrUpdateUser(User user);
Я собираюсь использовать User AddOrUpdateUser(User user);
для POST
и PUT
:
public User AddOrUpdateUser(User user)
{
if (user == null)
throw new ArgumentNullException("user", "AddOrUpdateUser: user is null");
using (var context = new AdnLineContext())
{
context.Entry(user).State = user.UserId == 0 ?
EntityState.Added :
EntityState.Modified;
context.SaveChanges();
}
return user;
}
Я следую за этим pattern, чтобы сделать это.
Но, я получаю сообщение об ошибке:
The type 'MyCompanyWCFService.IMyCompanyService' already contains a definition for
'AddOrUpdateUser' with the same parameters
Как я могу исправить эту проблему?
Это может быть удвоена со следующим post, посмотрите, поможет ли это: http://stackoverflow.com/questions/555073/enable-multiple-http-methods-on-a-single-operation – cocogorilla
Вы пытались поместить оба атрибута «WebInvoke» в один и тот же метод? – Jay