SVCUtil или пакетная обработка WSDL

Это на самом деле не имеет значения слишком много. Я спросил Matt Warren от LINQ до команды SQL об этом только что, и здесь являюсь ответом:

существует несколько причин, мы реализовали IDisposable:

, Если прикладная логика должна содержать на объект вне того, когда DataContext, как ожидают, будет использоваться или допустимый, можно осуществить тот контракт вызовом, Располагают. Задержанные загрузчики в том объекте будут все еще ссылаться на DataContext и попытаются использовать его, если какой-либо код попытается переместиться по задержанным свойствам. Эти попытки перестанут работать. Расположите также вынуждает DataContext вывести свой кэш осуществленных объектов так, чтобы единственный кэшируемый объект случайно не поддерживал все объекты, осуществленные через, что DataContext, который иначе вызвал бы, что, кажется, утечка памяти.

логика, которая автоматически закрывает соединение DataContext, может быть обманута в отъезд открытого соединения. DataContext полагается на код приложения, перечисляющий все результаты запроса начиная с получения до конца триггеров набора результатов соединение с завершением. Если приложение использует метод MoveNext IENUMERABLE вместо foreach оператора в C# или VB, можно выйти из перечисления преждевременно. Если Ваше приложение испытывает проблемы с соединениями, не закрывающимися, и Вы подозреваете, что автоматическое заключительное поведение не работает, можно использовать Расположить шаблон в качестве работы вокруг.

, Но в основном Вы не делаете действительно потребность избавиться от них в большинстве случаев - и это дизайном. Я лично предпочитаю делать так же так или иначе, как легче следовать, правило "избавляются от всего, что реализует IDisposable", чем помнить загрузку исключений к нему - но Вы вряд ли пропустите ресурс, если Вы сделаете , забывают избавляться от него.

7
задан BIBD 21 September 2009 в 20:08
поделиться

2 ответа

Если у вас все они есть в каталоге, вам, вероятно, следует запустить что-то вроде этого:

$wsdls = gci | ? { $_.Name -like "*.wsdl" } | % { $_.Name }

Foreach ($wsdl in $wsdls) {
  & "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\svcutil.exe" '$wsdl' /n:*,Your.Desired.Net.Namespace /o:'$wsdl'.cs /noconfig
}

Если есть подкаталоги, вы можете легко сделать это рекурсивным, и если у вас есть только список адресов, вы можете поместить их все в файл .txt, затем просмотреть содержимое и вызвать svcutil в каждой строке.

Важная часть, вероятно, состоит в том, как управлять пространством имен сгенерированного кода и как назвать все эти файлы.

6
ответ дан 7 December 2019 в 10:05
поделиться

Вы можете использовать svcutil.exe и написать пакетный сценарий или (что еще лучше) сценарий PowerShell для создания файлов кода из ваших файлов WSDL.

0
ответ дан 7 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

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