wcf - 如何在 .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,因此:
- 将新的 C# 项目添加到您的解决方案
- 在 Visual Studio 中添加 Connected Service 并配置您的端点,这将生成必要的代码,构建您的项目(并测试它是否有效)
- 从您的 F# 项目中,添加对此 C# 项目的引用,然后
open ProjectName
- 创建您的类型,并从 F# 中使用它。您将获得有关类型的智能感知,因此用户体验与类型提供者没有太大区别。
- 如果需要,您可以发布自包含的 exe:
dotnet publish -r win10-x64 -c Release -p:PublishSingleFile=true -p:PublishTrimmed=true
推荐阅读
- html - CSS Selector - 如何选择活动父元素的子元素?
- gulp-4 - 如何使用 gulp 4.0.1 编译和捆绑 react 16.9?
- php - 如何在我的数据库中插入单选按钮的值,我应该使用什么表格布局?
- html - 如何将 React 组件作为属性传递给 HTML 输入
- mongodb - 无法在另一个远程数据库上使用 $merge
- excel - 我想在打开 excel 文件时自动运行我的宏
- html - 有没有办法设置活动书签元素的样式?
- android - 我的片段中没有得到方向蓝线
- ios - 在导航栏标题下方添加自定义视图
- gradle - Gradle signArchives 无法读取密钥