Передача Словаря к сервису WCF

Я должен передать Словарь (с макс. 20 000 записей) в службу WCF. Я могу пройти мимо всего этого однажды?

void SubmitDictionary(Dictionary<string, MyEntry> val);

где MyEntry:

class MyEntry
{
    string Name;
    long Age;
}

Существует ли конфигурация для размера переданного значения? Или мы можем передать как большие данные как это?

6
задан Kris van der Mast 17 August 2010 в 10:10
поделиться

3 ответа

Мне нужно знать две вещи.

  1. Какой тип привязки вы используете? Подобно BasicHttpBinding или wsHttpBinding . Если вы используете wsHttpBinding , вам не нужно беспокоиться о его длине

  2. Вы сделали свой класс сериализуемым? Если нет, сделайте это так:

    [DataContract]
    public Class MyEntry
    {
          [DataMember]
          public string Name {get; set;}

          [DataMember]
          public long Age {get; set;}
    }
4
ответ дан 9 December 2019 в 22:30
поделиться

К сожалению, у вас более серьезная проблема, и она заключается в том, что вы не можете сериализовать IDictionary.

Вероятно, вам придется создать массив или что-то подобное с сериализуемым пользовательским типом ключ-значение.

4
ответ дан 9 December 2019 в 22:30
поделиться

Там MaxReceivedMessageSize , MaxStringContentLength и MaxBufferSize .

Проверьте ссылку

http://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx

Прочтите соответствующий вопрос о том, как увеличить размер

максимальный размер сообщения wcf

Silverlight и WCF: максимальный размер сообщения

ИЗМЕНИТЬ Также проверьте конфигурацию справочника службы. Вы должны установить Тип коллекции словаря на Словарь .

Удачи!

3
ответ дан 9 December 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: