2011-02-26 57 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