gpt4 book ai didi

f# - 带参数的 NancyFx F# 应用程序

转载 作者:行者123 更新时间:2023-12-03 00:57:38 24 4
gpt4 key购买 nike

我正在尝试将此示例从 C# 转换为 F#

public class MyModule : NancyModule
{
private IMyDependency _dependency;

public MyModule(IMyDependency dependency)
{
_dependency = dependency;

Get["/"] = x =>
{
};

// Register other routes
}
}

(来源1)

但是向构造函数添加参数

  type HelloModule(dependency) as self = 
inherit NancyModule()
do
self.Get.["/"] <- fun _ -> "Hello" :> obj

(来源2)

导致运行时异常:System.InvalidOperationException:“在组合过程中尝试满足依赖项之一时出现问题...

如何正确地将数据源等依赖项添加到代码中?或者,一般来说,我如何将一些东西从 HelloModule 外部传递到内部?

最佳答案

我猜测这可能是由于未在 F# 代码中指定构造函数的 dependency 参数的类型导致的。这将导致 F# 编译器将该参数分配为通用类型,然后 Nancy 的依赖项注入(inject)框架不知道要注入(inject)什么。

尝试以下操作,看看是否可以解决您的问题:

type HelloModule(dependency : IMyDependency) as self = 
inherit NancyModule()
do
self.Get.["/"] <- fun _ -> "Hello" :> obj

附注当然,要使其工作,您还需要某种类型来实现 IMyDependency 接口(interface),并告知 Nancy 框架该类型。来自 this part of the Nancy documentation您链接到的,看起来仅仅声明类型就足够了,但如果这实际上还不够,那么您必须手动注册类型。我对 Nancy 不太熟悉,无法为您提供超出文档所述的具体建议。

关于f# - 带参数的 NancyFx F# 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50615655/

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