如何从.NET Core 3.1中的F#访问WCF服务



在.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,所以:

  1. 将一个新的C#项目添加到您的解决方案中
  2. 在Visual Studio中添加Connected Service并配置您的终点,这将生成必要的代码,构建您的项目(并测试它是否工作(
  3. 在F#项目中,添加对该C#项目的引用,并添加open ProjectName
  4. 创建您的类型,并从F#使用它。您将获得类型的intellisense,因此用户体验与类型提供程序没有太大区别
  5. 如果需要,您可以发布自包含的exe:
    dotnet publish -r win10-x64 -c Release -p:PublishSingleFile=true -p:PublishTrimmed=true

最新更新