Open visual studio and click new Project and choose a
console application and name it Ninject.Console you should have your solution
like that
Now lets get the Ninject, I prefer Nuget If you don’t have
it installed get it from here http://nuget.codeplex.com/releases
or you can search for it in the VS extensions Tools->Extension manager. Open
Nuget by right clicking the reference folder in the solution and click manager nugget
packages and then search for Ninject and click install Package see screen shot
below
Configuration part
Depending on the type of you app you need to set the
configuration cause they must take place at the starting of the app, and since
we are in a console application then the most convenient place is the
program.cs. there we must create our standard kernel which is the handler which
does all the binding.
Binding is the operation of registering a type to its
interface “will be explained by code later”
So for now we need to create a standard kernel check below in programs.cs
//A build error will occur stating the construct for standard kernel take 1 parameter var kernel = new StandardKernel();
As it says the a build error will say that he constructor
need a kernel module to operate
What is the kernel module : It holds all the configuration
for the types created before so for instance it hold that object A is the implementation
for interface IA
How do we create it ?
Like this
Since it is only gonna be used in this assembly I am going
to define it as internal so add a new class and call NinjectBootstrapper and
implement the kernelmodule interface and override the method load cause there
we will put our configuration AKA bindings
internal class NinjectBootsrapper : NinjectModule { public override void Load() { } }
Now Let’s Create our derived types
First create a class called Processor and an interface for
it called IProcessor as below
Now lets add the Configuration to Ninjectbootstrapper like
below
public interface IProcessor { /// <summary> /// Process something /// </summary> void Process(); } public class Processor : IProcessor { /// <summary> /// Process something /// </summary> public void Process() { System.Console.Write("Processing ............"); } }
And then lets go back to program.cs and add some usage to it
for processor like below
And the hit run notice the screen below WOW it works and I can
resolve object based on its interface configuration see screen shot below
Thanks for reading
Comments
Post a Comment