Ninject и F #?

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

Ответ 1

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