Ninject и F #? - PullRequest
       10

Ninject и F #?

10 голосов
/ 26 февраля 2011

Кто-нибудь использовал Ninject в коде F #? любой намек приветствуется.

1 Ответ

14 голосов
/ 26 февраля 2011

Не думаю, что есть что-то особенное в использовании Ninject в F #.Пример Ninject для Samurai / IWeapon / Sword выглядит следующим образом:

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 #, такие как неявные конструкторы и вывод типов, делают код довольно лаконичным.

...