2015-03-19 3 views
3

Клиент WCF Test, похоже, не ставит методы в любом логическом порядке. Однако порядок согласован. Он остается неизменным в каждой среде.Что определяет порядок методов в тестовом клиенте WCF?

Это не алфавит. Это не порядок методов в классе. Заказ в тестовом клиенте WCF не соответствует порядку в WSDL.

Это не совсем случайный случай. Приказ иногда соответствует классу. Но затем вы можете изменить порядок в классе, перекомпилировать, а когда вы добавите службу обратно в тестовый клиент WCF, она не изменится.

Так что же определяет порядок?

+1

Зачем вам это нужно? Не могли бы вы объяснить это? – VMAtm

+0

Если вы просто ищете способ найти определенный метод службы в списке операций, вы можете [указать имя метода] (http://stackoverflow.com/questions/14695156/listing-service-operations-alphabally -в-ФОС-тест-клиент-wcftestclient-EXE? RQ = 1). – CodeCaster

+0

Моя первоначальная цель состояла в том, чтобы найти способ переупорядочить их, чтобы другие в моей организации могли легче найти дорогу вокруг крупных служб. Узнав, что заказ не податливый, я хотел знать, почему. Ввод имени полезен, но я в основном хотел узнать, что приводит в порядок его/недостаток. – friggle

ответ

5

Для любопытства, я посмотрел исходный код WcfClientTest.exe, чтобы узнать, что это за заказ.

Следующий фрагмент кода, вероятно, где все методы не будут заполнены (отказ от ответственности: я только догадывался нет времени, чтобы проверить это!):

endpoint.ClientTypeName = GetContractTypeName(contractType); 
foreach (MethodInfo info in contractType.GetMethods()) 
{ 

Так что есть порядок методов, которые GetMethods возвращается? Согласно этой ссылке MSDN: https://msdn.microsoft.com/en-us/library/4d848zkb(v=vs.110).aspx

Метод GetMethods не возвращает методы в определенном порядке, , такие как алфавитный или декларация порядка. Ваш код не должен зависеть от от порядка возврата методов, поскольку этот порядок варьируется.

Это все, что я могу узнать :)

+0

Вау, это звучит как ответ. Это объясняет, почему он обычно следует контракту, но иногда, похоже, придерживается собственного порядка: CLR обнаружила, что по какой-либо причине было реорганизовано несколько методов. – friggle

Смежные вопросы