F#Ninject构造函数注入

时间:2014-03-05 20:05:37

标签: f# ninject

是否可以使用Ninject在F#中进行隐式构造函数注入?如果是这样,怎么样?

我试图将[<Inject>]属性放在类型定义上,但是我收到了一个错误,它无效。

以下是我的尝试:

[<Inject>]
type Blah(x : ISword) =

3 个答案:

答案 0 :(得分:2)

规范允许如下:

class-type-defn :=

    type-name primary-constr-args_opt object-val_opt '=' class class-type-body end

,其中

primary-constr-args :=

    attributes_opt accessopt (simple-pat, ... , simple-pat)

因此,您只需将代码更改为

即可
type Blah [<Inject>](x : ISword) =

答案 1 :(得分:2)

Inject属性仅适用于Property setter injection。构造函数注入是隐含的。只需创建绑定,然后使用构造函数注入创建kernel.Get<Blah>()Blah

答案 2 :(得分:1)

这是F#中的构造函数注入:

type Foo(bar : IBar) =
    // class members etc. here

任何要求你在类型上打一个属性以便理解它的库,都是做错了;选择另一个图书馆。

相关问题