Configuration 使用F#脚本中的app.config

Configuration 使用F#脚本中的app.config,configuration,f#,Configuration,F#,我在这里看到了几个关于堆栈溢出的相关问题,但是似乎没有一个有答案。我将提出这个问题,然后包括我找到的相关问题的链接 我有一个用C语言编写的核心域库,它利用实体框架。因此,EF需要dbcontext将连接字符串传递给基(dbcontext)。在我的例子中,连接字符串存在于app.config(或web.config)中,当然取决于顶级项目,名称是“AnnotatorModel” 我需要在我的F#脚本中实例化DBContext,以测试一些查询和分析 我在我的F#项目中将这个添加到app.config

我在这里看到了几个关于堆栈溢出的相关问题,但是似乎没有一个有答案。我将提出这个问题,然后包括我找到的相关问题的链接

我有一个用C语言编写的核心域库,它利用实体框架。因此,EF需要dbcontext将连接字符串传递给基(dbcontext)。在我的例子中,连接字符串存在于app.config(或web.config)中,当然取决于顶级项目,名称是“AnnotatorModel”

我需要在我的F#脚本中实例化DBContext,以测试一些查询和分析

我在我的F#项目中将这个添加到app.config中,并尝试了一些答案,但没有成功。有人知道一个简单直接的方法来完成这个任务吗

下面是代码,在尝试实例化dbcontext、AnnotatorModel时会中断

let PredictBestEntities (number:int) (tokens:string seq) =
   let db = new AnnotatorModel()    
   tokens 
   |> Seq.map ...etc etc
谢谢, ~z~大卫

相关问题:


这不是你要问的问题,但我还是要补充这个答案:

将构造函数重载添加到
AnnotatorModel
,使您能够传递连接字符串。这将使您能够编写:

let db = new AnnotatorModel("some connection string")
完全依赖app.config中的连接字符串将库与单个配置源紧密耦合。这不是一个好的图书馆设计。您不仅在从FSI使用它时遇到问题,而且在运行时更改“配置值”、从数据库而不是文件中加载它们等都很困难


库不应耦合到app.config。只有应用程序才应该使用app.config。

将此与使用ConfigurationManager(在assembly System.Configuration中)读取值相结合,使用ConfigurationManager可以在指定路径加载.config文件。。