Add the following references to your project after having installed the Unity application block.
--> Microsoft.Practices.ObjectBuilder2 --> Microsoft.Practices.Unity --> Microsoft.Practices.Unity.Configuration --> Microsoft.Practices.Unity.Interception --> Microsoft.Practices.Unity.Interception.Configuration --> Microsoft.Practices.Unity.StaticFactory
And then include the following using statement in your code:
using Microsoft.Practices.Unity;
The Hello World program:
using System; using Microsoft.Practices.Unity; public interface IHelloWorld { string Text { get; } } public class HelloWorld : IHelloWorld { public string Text { get { return "Hello, World"; } } } class Program { static void Main(string[] args) { // Bootstrapping IUnityContainer unityContainer = new UnityContainer(); unityContainer.RegisterType<IHelloWorld, HelloWorld>(); // Resolving what class is registered with what interface var obj = unityContainer.Resolve<IHelloWorld>(); Console.WriteLine(obj.Text); } }
What's going on above?
1. Define the interface
public interface IHelloWorld
2. Make a implementation
public class HelloWorld : IHelloWorld
3.Bootstrapping: register your interface to any interface implementation
IUnityContainer unityContainer = new UnityContainer(); unityContainer.RegisterType<IHelloWorld, HelloWorld>();
4. Resolving what class is registered with what interface, invoke your code
var obj = unityContainer.Resolve<IHelloWorld>();
5. Resolve what class is associated with our interface. This is how you run/start your class.
var obj = unityContainer.Resolve<IHelloWorld>();
6. And you're ready to print hello, world. Of course you don't need to return a property. You could have done the console writing inside your implementation of the interface.
Console.WriteLine(obj.Text);
No comments:
Post a Comment