2011-02-26 20 views
10

Czy ktoś użył programu Ninject w kodzie F #? każda wskazówka jest doceniana.Ninject i F #?

+0

jakie konkretne problemy zostały przez Ciebie znalezione? –

+0

Nie miałem żadnych problemów. Właściwie po prostu chcę użyć Ninject w F #, ale nie mogę znaleźć żadnego przykładowego kodu/projektu. Czy masz coś, co możesz udostępnić? Prosty przykład roboczy zrobi – amirmonshi

Odpowiedz

13

Nie sądzę, że jest coś szczególnego w użyciu programu Ninject w języku F #. Przykład Ninject of Samurai/IWeapon/miecz wygląda następująco:

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 # funkcje, takie jak ukrytych konstruktorów i rodzaj wnioskowania uczynić kod dość zwięzłe.

+0

Świetnie! dzięki za przykład – amirmonshi

+0

Dzięki za to również ... szukałem i znalazłem to jako dokładną odpowiedź na moje pytanie. – ChargerIIC