F # WSDL генерация кода - PullRequest
       13

F # WSDL генерация кода

5 голосов
/ 29 ноября 2010

Я использую интегрированную оболочку VS.NET 2010 с F # и пытаюсь использовать мыльный веб-сервис ... Как мне создать источник F #?Я пытался

wsdl l: "C: \ Program Files (x86) \ FSharpPowerPack-2.0.0.0 \ bin \ FSharp.Compiler.CodeDom.dll" http://localhost/?wsdl

Наряду с

wsdl /language:"Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider, Microsoft.FSharp.Compiler.CodeDom, версия = 1.9.2.9, Culture = нейтральный, PublicKeyToken = a19089b9c074

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

РЕДАКТИРОВАТЬ:

ответ taspeotis заставил меня ... Это сгенерировало F #Источник для веб-службы:

gacutil -i "C:\Program Files (x86)\FSharpPowerPack-2.0.0.0\bin\FSharp.PowerPack.dll"
svcutil /language:"Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider, FSharp.Compiler.CodeDom, Version=2.0.0.0, Culture=neutral, PublicKeyToken=a19089b1c74d0809" http://localhost/?wsdl

Ответы [ 3 ]

2 голосов
/ 29 ноября 2010

Вы добавили FSharp.Compiler.CodeDom.dll в GAC? Для этого используйте gacutil.exe .

стороннее редактирование

Вот пример gacutil.exe /l System.XML.Linq для перечисления определенных сборок. Помимо FSharp.Compiler.CodeDom ( source ) альтернативой может быть библиотека FSharp.Data

Цитата из дзидзугу: This generated F# source for the web service:

gacutil -i 
   "C:\Program Files (x86)\FSharpPowerPack-2.0.0.0\bin\FSharp.PowerPack.dll"

svcutil 
  /language:"Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider  
        ,FSharp.Compiler.CodeDom, Version=2.0.0.0, Culture=neutral
        ,PublicKeyToken=a19089b1c74d0809" http://localhost/?wsdl
2 голосов
/ 29 ноября 2010

Это не отвечает на ваш вопрос, но вам может повезти, если вы создадите C #, скомпилируете этот C # в библиотеку DLL и сделаете ссылку на эту DLL из вашего кода F #.(Компилятор C # csc.exe будет частью вашей установки .NET.)

0 голосов
/ 30 ноября 2010

Я был бы удивлен, если бы поставщик DOM F # Code работал с WSDL. Я написал первоначальную реализацию некоторое время назад, когда работал в Microsoft, и мы заставили ее работать с ASP.NET, но если она не была улучшена с тех пор, она, вероятно, не будет работать с WSDL или XSD.

Даже для ASP.NET нам пришлось создать отдельный класс, включающий некоторые специфические для ASP.NET «хаки». Это было отчасти потому, что CodeDOM, сгенерированный ASP.NET, был недействительным (в некотором смысле) и потому, что структура CodeDOM не совсем совместима с F #. Если вам действительно нужно, чтобы это работало, вам, возможно, придется добавить похожие хаки (путем изменения источника из CodePlex )

Мне кажется, что более безопасный подход - включить небольшой проект библиотеки C #, который генерирует для вас ссылку, или вызвать компилятор C #, используя csc.exe, как предлагает Брайан.

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