Я должен передать Словарь (с макс. 20 000 записей) в службу WCF. Я могу пройти мимо всего этого однажды?
void SubmitDictionary(Dictionary<string, MyEntry> val);
где MyEntry:
class MyEntry
{
string Name;
long Age;
}
Существует ли конфигурация для размера переданного значения? Или мы можем передать как большие данные как это?
Мне нужно знать две вещи.
Какой тип привязки вы используете? Подобно BasicHttpBinding
или wsHttpBinding
. Если вы используете wsHttpBinding
, вам не нужно беспокоиться о его длине
Вы сделали свой класс сериализуемым? Если нет, сделайте это так:
[DataContract]
public Class MyEntry
{
[DataMember]
public string Name {get; set;}
[DataMember]
public long Age {get; set;}
}
К сожалению, у вас более серьезная проблема, и она заключается в том, что вы не можете сериализовать IDictionary.
Вероятно, вам придется создать массив или что-то подобное с сериализуемым пользовательским типом ключ-значение.
Там MaxReceivedMessageSize , MaxStringContentLength и MaxBufferSize .
Проверьте ссылку
Прочтите соответствующий вопрос о том, как увеличить размер
максимальный размер сообщения wcf
Silverlight и WCF: максимальный размер сообщения
ИЗМЕНИТЬ Также проверьте конфигурацию справочника службы. Вы должны установить Тип коллекции словаря на Словарь
.
Удачи!