Передача словаря в службу WCF - PullRequest
6 голосов
/ 25 мая 2010

Мне нужно передать словарь (не более 20 000 записей) в службу WCF. Могу ли я пройти все это один раз?

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

где MyEntry:

class MyEntry
{
    string Name;
    long Age;
}

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

Ответы [ 3 ]

4 голосов
/ 25 мая 2010

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

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

4 голосов
/ 25 мая 2010

Две вещи, которые мне нужно знать.

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

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

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

          [DataMember]
          public long Age {get; set;}
    }
3 голосов
/ 25 мая 2010

Есть MaxReceivedMessageSize , MaxStringContentLength и MaxBufferSize .

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

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

Прочтите связанный вопрос о том, как увеличить размер

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

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

РЕДАКТИРОВАТЬ Проверьте также настройку Service Reference. Вы должны установить Тип словарной коллекции в Dictionary.

Удачи!

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