Передача сущности в веб-сервис ASP.NET - PullRequest
1 голос
/ 24 октября 2009

Это может быть очень легко, но я пытаюсь передать объект Customer методу веб-службы. Класс Customer находится в пространстве имен Entity и сериализуем, и я добавляю ссылку как на мое приложение ASP.NET, которое вызывает веб-сервис и передает объект Entity.Customer, так и на WebService, который принимает объект Enity.Customer.

Метод веб-службы

[WebMethod]
public void AddCustomer(Entity.Customer c)
{}

ASP.NET Applcation

Entity.Customer c = new Entity.Customer;
webservice.AddCustomer(c);

Ошибка

Наилучшее совпадение перегруженного метода для 'TestApplication.localhost.Service1.AddCustomer (TestApplication.localhost.Customer)' содержит недопустимые аргументы

Я попытался изменить веб-службу для приема Object, а затем преобразовал этот объект в Customer.Entity, приложение компилируется, но я получаю ошибки генерации XML.

Ответы [ 2 ]

1 голос
/ 26 октября 2009

Генерируете ли вы метод веб-службы с помощью метода «Добавить веб-ссылку» из Visual Studio?

Это проблема компиляции, верно? Ваше приложение не хочет компилировать? Просто перейдите к определению метода и убедитесь, что вы передаете тот же объект customer, который указан в определении метода - обычно сгенерированный метод веб-службы генерирует прокси-версию объекта, и вам необходимо передать тот же класс.

0 голосов
/ 24 октября 2009

Часто вспомогательные методы, сгенерированные с помощью метода службы, ожидают локальные сгенерированные объекты - это потому, что некоторые элементы серверных объектов не сериализуются или обрабатываются немного по-другому из-за сериализации.

Попытка:

TestApplication.localhost.Customer c = new TestApplication.localhost.Customer();
webservice.AddCustomer(c);

Таким образом, вы используете сгенерированные объекты с правильно сериализованными свойствами, а не исходный объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...