Skip to main content

IOC Part 2 - Ninject How it works and how to use


This article is a follow-up to its predecessor Introduction to IOC AKA IOC Part 1, basically I am have chosen a dependency injection container that I have been acquainted with for some time now and I will be going in deep on how it works and how we can use it in a real life application.

First – Know Ninject

It is a dependency injection container that is used to separate application parts to be more loosely coupled, highly maintainable and then weirs them back with each other flexibly, so in Short it does IOC “you can check the previous article if you need more of understanding on what IOC really is here is the link

Second – How it works

So that’s a good and a very important thing you need to know before using any framework, how does it work and to be precise the question you need to ask yourself is what is going on under the hood?, well as most of the Dependency Injection containers it is basically using reflection to analyze the types it is working with and to weir object implementations at runtime. It also uses the generation system the one that was introduced in CLR 2 AKA Microsoft dynamics which allows you to create types at runtime.

Third - Lets Use Ninject

For a start lets know where you can get the framework, you can either download it from their official site  or you can download it using nugget.
Following there will be a blog post on how to use Ninject in a testing application 


Popular posts from this blog

(AsyncWebClient) Async Webclient for windows phone 8

Using windows phone web client is pretty common but the thing is you can not use it using Async -> Await mechanism so i used threading to create an async functionality for The Download string and upload string methods here is the code below // Comment public class AsyncWebClient { public Task DownloadString(Uri uri) { var task = new TaskCompletionSource(); try { var client = new WebClient(); client.DownloadStringCompleted += (s, e) => { task.SetResult(e.Result); }; client.DownloadStringAsync(uri); } catch (Exception ex) { task.SetException(ex); } return task.Task; } public Task UploadString(Uri uri, string content) { var task = new TaskCompletionSource(); try { var client…

RuntimeBinderException cannot resolver property in Unit Test in case of dynamic return.. Solved

Xamarin UI Tests – Deep dive Part 1

IntroAs the title may describe this is the first of the series of articles that will cover the UI Test of Xamarin in a deep dive, we will start simple and then dig deeper as we go. Since this is very well the first of the series, it will mostly cover up the architecture and the testing technique that Xamarin UI Tests uses.

The Technology
Xamarin UI Test is an automation testing framework similar to selenium, Watir, Watin (.net), Robot and Sikuli, if you have used BDD (Behavioral Driven Development) or a more advanced TDD (Test Driven Development) approach at least you must have come across one of these frameworks, and in that perspective comes Xamarin UI Testing as an automation framework designed specifically for Xamarin Automation testing, For starter Xamarin UI Tests was not build from scratch, instead it was built on top of another UI Automation testing framework that is targeting android and iOS sepecifically which is Calabash, I have to say that this choice was made wisely as of n…