我想使用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:但我仍然对此问题的替代方法感兴趣。
答案 0 :(得分:0)
我创建了一个基于上述模板的示例项目,该项目通过在脚本文件中引用来解决问题。基本上,您可以为加载本地fs文件和依赖项的每个项目创建一个fsx文件。然后你可以将这个fsx文件加载到另一个依赖项目的fsx文件中,依此类推。
可以找到示例代码here。