问题描述
在.Net Framework 4.7.2 F#中,我一直在使用:
fsharp.data.typeproviders
使用
type WSDL = WsdlService<"http://...ServiceHost.svc">
type AV = WsdlService<"http://...ServiceHost.svc">
从F#.fs文件访问我的本地WCF网络服务。
使用.NET Core 3.1时,如何从F#客户端访问WCF服务?
TIA
如果没有,推荐的WCF / petapoco / Postgresql升级路径是什么?
解决方法
这是F#3.0中的旧类型提供程序,它依赖svcutil进行代码生成。您可以引用其nuget软件包,但有可能(可能)不支持dotnet-svcutil工具。但是您可以从C#使用WCF,所以:
- 将新的C#项目添加到您的解决方案中
- 在Visual Studio中添加Connected Service并配置您的端点,这将生成必要的代码,构建您的项目(并测试其是否有效)
- 从您的F#项目中,添加对此C#项目的引用,然后添加
open ProjectName
- 创建您的类型,然后在F#中使用它。您将对类型有一定的了解,因此用户体验与类型提供者没有什么不同。
- 如果需要,您可以发布独立的exe:
dotnet publish -r win10-x64 -c Release -p:PublishSingleFile=true -p:PublishTrimmed=true