如何从 .NET Core 3.1 中的 F# 访问 WCF 服务?
How to access a WCF service from F# in .NET Core 3.1?
在 .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 中添加连接服务并配置您的端点,这将生成必要的代码,构建您的项目(并测试它是否有效)
- 从您的 F# 项目中,添加对此 C# 项目的引用,然后
open ProjectName
- 创建您的类型,并在 F# 中使用它。您将获得有关类型的智能感知,因此用户体验与类型提供程序没有太大区别。
- 如果需要,您可以发布 self-contained exe:
dotnet publish -r win10-x64 -c Release -p:PublishSingleFile=true -p:PublishTrimmed=true
在 .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 中添加连接服务并配置您的端点,这将生成必要的代码,构建您的项目(并测试它是否有效)
- 从您的 F# 项目中,添加对此 C# 项目的引用,然后
open ProjectName
- 创建您的类型,并在 F# 中使用它。您将获得有关类型的智能感知,因此用户体验与类型提供程序没有太大区别。
- 如果需要,您可以发布 self-contained exe:
dotnet publish -r win10-x64 -c Release -p:PublishSingleFile=true -p:PublishTrimmed=true