У меня есть большой сторонний веб-сервис; reference.cs - 33 Мбайт. Используя Visual Studio 2017, прокси использует XML-сериализатор, что вызывает 5-секундную задержку при создании канала. Я открыл дело в Microsoft, и они частично показали мне, как изменить reference.cs, чтобы использовать сериализатор Datacontract. На той же машине канал создается через 20 мсек, что идеально соответствует моим потребностям.
К сожалению, сообщения терпят неудачу с небольшими различиями, и поддержка Microsoft не может помочь.
Существуют ли известные ограничения? Любые шаблоны, которые я должен искать, что делает его уверенным, что он вообще не работает, и я должен начать переписывать все, используя HTTP-запросы?
Фактический метод, который приводит к общей задержке:
public XmlMembersMapping ImportMembersMapping(string elementName, string ns,
XmlReflectionMember[] members, bool hasWrapperElement, bool writeAccessors,
bool validate, XmlMappingAccess access) {
ElementAccessor element = new ElementAccessor();
element.IsSoap = true;
element.Name = elementName == null || elementName.Length == 0 ? elementName :
XmlConvert.EncodeLocalName(elementName);
}