![](/img/trans.png)
[英]Scraping KnownType attributes during SvcUtil and WSDL Code generation
[英]F# WSDL code generation
我正在使用带有F#的VS.NET 2010集成shell,我正在尝试使用soap Web服务......如何生成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,Version = 1.9.2.9,Culture = neutral,PublicKeyToken = a19089b1c74d0809“
但是我似乎无法让/ language开关工作。
编辑:
taspeotis的回答让我走了......这为Web服务生成了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
这不能回答你的问题,但你可能更幸运生成C#,将C#编译成库DLL,并从你的F#代码引用该DLL。 (C#编译器csc.exe将成为.NET安装的一部分。)
你有没有将FSharp.Compiler.CodeDom.dll
添加到GAC? 使用gacutil.exe执行此操作。
这里有一个示例gacutil.exe /l System.XML.Linq
来列出某些程序集。 除了FSharp.Compiler.CodeDom ( source )之外,另一个可能是FSharp.Data库
引自jizugu: 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
如果F#Code DOM提供程序使用WSDL,我会感到惊讶。 我在一段时间之前编写了初始实现,而在Microsoft,我们让它与ASP.NET一起工作,但除非它从那时起被改进,否则它可能不适用于WSDL或XSD。
即使对于ASP.NET,我们也必须创建一个单独的类,其中包含一些特定于ASP.NET的“hacks”。 这部分是因为ASP.NET生成的CodeDOM无效(在某种程度上),并且因为CodeDOM结构与F#不完全兼容。 如果你真的需要让它工作,你可能需要添加类似的hacks(通过修改CodePlex的源代码 )
我认为更安全的方法是包含一个小的C#库项目,它为您生成引用或使用csc.exe
调用C#编译器,如Brian建议的那样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.