WCF: передовая практика отправки данных формы в веб-службу? - PullRequest
0 голосов
/ 27 ноября 2008

Мы используем C #, ASP.NET и WCF. Я пытаюсь отправить данные формы в веб-службу, которая, в свою очередь, вставляет / обновляет базу данных, используя данные из моей формы. Как мне отправить свои данные?

У нас заполнены формы, но возникли проблемы с отправкой обновлений в веб-службу. Мы определили, что в этой ситуации не рекомендуется использовать наборы данных, это медленно, и нам нужно сделать слишком много SELECT * на наш вкус.

У меня есть около 15 полей, которые нужно пройти. Один член команды хочет передать все как параметр, который я не считаю оптимальным. Мы попытались передать все в массиве Object [], но получили странную ошибку: «Тип 'System.DBNull' с именем контракта данных« DBNull: http ... »не ожидается. Добавить любые типы, не известные статически, в список известные типы ",

Любые предложения приветствуются.

1 Ответ

2 голосов
/ 28 ноября 2008

Мы используем WCF для определения наших контрактов данных и методов данных с использованием атрибутов.

По сути, мы создаем сборку для определения всех наших классов и другую сборку для предоставления соединительных битов WCF

Сборка класса OPur содержит класс обслуживания и несколько классов сообщений.

Мы определяем интерфейс для нашего сервиса и помечаем его соответствующей разметкой WCF. Это наш сервисный контракт.

[ServiceContract]
public interface IExampleWebService
{
    [OperationContract]
    CreateAccountResponse CreateAccount(int parameter, CreateAccountArguments another parameter);

    [OperationContract]
    DeleteAccountResponse DeleteAccount(int parameter);
}

Мы реализуем этот интерфейс в классе и создаем различные контракты данных (наши классы ответа и аргумента).

[DataContract]
public class CreateAccountResponse
{
    [DataMember]
    public bool CreatedOk { get; set; }

    [DataMember]
    public int AccountId { get; set; }
}

Эти классы предоставляются нашей форме с использованием веб-службы (мы создаем другую сборку в качестве веб-службы и имеем класс, который наследуется от нашего класса обслуживания (не показан в этом примере), поэтому мы разрешаем Visual Studio выполнять все рабочие настройки сервис WCF, поскольку мы получаем преимущества благодаря простому в использовании и обслуживании веб-сервису.

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