This repository contains tasks which should help you understand to Inversion Of Control principle and usage of Microsoft Unity in a project
C#
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.nuget
010_IoCWithoutUnity
020_IoCWithUnity
030_UnityChildContainers
040_UnityLifetimeManagement
050_UnityNamedRegistratations
060_UnityInjectionTypes
070_UnityRecursiveRegistrationIssue
080_UnityBuildUp
090_UnitTestingWithoutIoC
100_UnityBuildUpIssue
110_UnityResolutionOverrides
120_UnityContainerDisposalHang
130_UnityDependencyOfRootOnChild
140_UnitTestingWithIoC
150_UnityRegistrationDifferences
packages
.gitignore
CONTRIBUTING.md
IoCTasks.sln
LICENSE
README.md

README.md

IoCTasks

Intro

This solution contains a set of projects which should help you understand to following topics:

  • IoC/DI (Inversion Of Control/Dependency Injection principles).
  • IoC containers.
  • Microsoft Unity IoC container.
  • It also touches on highly related topic which is Unit testing.

Motivation

  • Provide 'hands-on experience' course on the topics above in form of small coding tasks.
  • Help to guys on the team to understand the topic.
  • Deliver sample solutions for all tasks which can serve as a reference with intent:
    • At first try to resolve tasks on your own.
    • If you will get stuck feel free use appropriate sample solution to unblock yourself.
    • After you solved it on your own, look at the sample solution to make sure we understand it in the same way.

Sources

How to use projects

  • Each project is a prepared coding task.
  • Each project contains README.md file which provides brief summary of the topic and goals for the task.
  • For additional information look into the Microsoft Unity documentation (goal of this project is not to provide reference guide to MS Unity API).
  • Simply clone this project (or download it as a .ZIP file) and attempt to solve all individual tasks.
  • Open the solution in VS2012+ and compile it. The compilation would download dependencies from Nuget (such as Microsoft Unity).
  • If you are aware of some interesting challenge in the area feel free to propose a sample tasks with sample solution in form of pull request.