繁体   English   中英

F#和C#Web服务无法打开名称空间

[英]F# and C# Web Service cannot open namespace

我想使用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#项目使用,但不能在脚本文件中使用。

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

编辑:我必须承认这是一个重复的问题 :但我仍然对解决此问题的替代方法感兴趣。

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

示例代码可以在这里找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM