gpt4 book ai didi

wcf - F# 交互式与 F# 解决方案和 WCF

转载 作者:行者123 更新时间:2023-12-04 14:33:39 26 4
gpt4 key购买 nike

尝试在 F# 交互中运行它:

#r "System.ServiceModel"
#r "System.Runtime.Serialization"

open System.ServiceModel

[<ServiceContract>]
type IWCF =
[<OperationContract>]
abstract Ping: float -> unit

type WCF () =
interface IWCF with
member o.Ping a = printfn "Hello, %g" a

let svh = new ServiceHost (typeof<WCF>)

你很可能会成功。尝试制定新的解决方案。

引用:
  • System.Runtime.Serialization
  • System.ServiceModel

  • 将以下代码粘贴到 Program.fs 中:
    open System.ServiceModel

    [<ServiceContract>]
    type IWCF =
    [<OperationContract>]
    abstract Ping: float -> unit

    type WCF () =
    interface IWCF with
    member o.Ping a = printfn "Hello, %g" a

    let svh = new ServiceHost (typeof<WCF>)

    并运行它。我收到以下错误:

    All parameter names used in operations that make up a service contract must not be null. Parameter name: name



    怎么了?

    PS:我使用 Visual Studio 2010 Ultimate SP1

    编辑:只是为了确保,C# 等效的工作正常

    最佳答案

    问题确实是您需要为 WCF-Operations 中的参数命名。

    这是在那里获取命名参数的解决方案(命名为 a 就像你一样) - 至于它为什么在 F#-Interactive 中工作?不知道,也许它在那里放了一些参数的标准名称。
    语法有点奇怪,但您可以在 F# 中为参数定义名称,请尝试:

    [<ServiceContract>]
    type IWCF =
    [<OperationContract>]
    abstract member Ping: a:float -> unit

    注意:我不知道您是否需要 member在那里,但我只是检查了我的一些文件并将其放在那里。我在 ATM 周围没有编译器,所以我会把它放在那里,以防你真的需要它(但我不这么认为)

    关于wcf - F# 交互式与 F# 解决方案和 WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7609383/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com