2011-02-26 67 views
10

有没有人在F#代码中使用过Ninject?任何暗示赞赏。Ninject和F#?

+0

你发现了什么具体问题? – 2011-02-26 15:58:04

+0

我没有遇到任何问题。其实我只想在F#中使用Ninject,但我找不到任何示例代码/项目。你有什么可以分享的吗?一个简单的工作示例将会做 – amirmonshi 2011-02-26 16:47:34

回答

13

我不认为在F#中使用Ninject有什么特别之处。武士/ IWeapon /剑Ninject例子是这样的:

open Ninject 

type IWeapon = 
    abstract Hit: string -> unit 

type Sword() = 
    interface IWeapon with 
     member x.Hit s = printfn "Slash %s" s  

type Samurai(weapon: IWeapon) = 
    member x.Attack target = 
     weapon.Hit target 

[<EntryPoint>] 
let main args = 
    use kernel = new StandardKernel() 
    kernel.Bind<IWeapon>().To<Sword>() |> ignore 
    kernel.Bind<Samurai>().ToSelf() |> ignore 
    let samurai = kernel.Get<Samurai>() 
    samurai.Attack "enemy" 
    0 

F#的功能,如隐含的构造和类型推断使代码相当简洁。

+0

太棒了!谢谢你的例子 – amirmonshi 2011-02-26 18:59:44

+0

感谢这一点以及...正在搜索,并发现这是我的问题的确切答案。 – ChargerIIC 2013-07-17 14:19:07