2011-02-26 20 views
10

¿Alguien ha usado Ninject en el código F #? cualquier sugerencia es apreciadaNinject y F #?

+0

¿Qué problemas concretos ha encontrado? –

+0

No he tenido ningún problema. En realidad, solo quiero usar Ninject en F # pero no puedo encontrar ningún código/proyecto de muestra. ¿Tienes alguno que puedas compartir? Un simple ejemplo de trabajo hará – amirmonshi

Respuesta

13

No creo que haya nada particular en usar Ninject en F #. El ejemplo Ninject del samurai/IWeapon/Espada se ve así:

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 # características como constructores implícitas y la inferencia de tipos hacen que el código bastante conciso.

+0

¡Genial! gracias por el ejemplo – amirmonshi

+0

Gracias por esto también ... estaba buscando y encontré esto como una respuesta exacta a mi pregunta. – ChargerIIC