F#和C#Web Service无法打开命名空间

时间:2013-06-05 10:21:23

标签: wcf f# namespaces f#-3.0

我想使用Daniel Mohl的VS2012 F#和C#Web服务模板。但是,我遇到了一个令人沮丧的问题,即无法在脚本文件中使用生成的代码:

namespace FSharpWcfServiceApplicationTemplate

open System
open FSharpWcfServiceApplicationTemplate.Contracts

type Service1() =
    interface IService1 with
        member x.GetData value =
            sprintf "%A" value
        member x.GetDataUsingDataContract composite =
            match composite.BoolValue with
            | true -> composite.StringValue <- 
                            sprintf "%A%A" composite.StringValue "Suffix"
            | _ -> "do nothing" |> ignore
            composite

我没有运气就尝试了以下方案:

#load Service1.svc.fs

我明白了:

  

Service1.svc.fs(4,6):错误FS0039:命名空间或模块   'FSharpWcfServiceApplicationTemplate'未定义

当我尝试加载dll时:

#I "bin/Debug"
#r "Services.dll"

正确地在交互中引用了dll,但我无法打开名称空间FSharpWcfServiceApplicationTemplate。我还尝试将fsi文件添加到Service1.svc.fs文件中。它编译并可以由C#项目使用,但不能在脚本文件中使用。

如何更改此设置以便我可以交互使用服务代码?

编辑:我必须承认这有点重复question:但我仍然对此问题的替代方法感兴趣。

1 个答案:

答案 0 :(得分:0)

我创建了一个基于上述模板的示例项目,该项目通过在脚本文件中引用来解决问题。基本上,您可以为加载本地fs文件和依赖项的每个项目创建一个fsx文件。然后你可以将这个fsx文件加载到另一个依赖项目的fsx文件中,依此类推。

可以找到示例代码here