In my office we use Castle or Autofac for IoC. We prefer Autofac but have to use Castle for one of our main clients. You can implement dependency injection via the constructor using an IoC container, e.g.
csharp Code:
  1. internal class SomePresentationClass
  2. {
  3.     private SomeServiceClass firstService;
  4.     private SomeOtherServiceClass secondService;
  5.  
  6.     public SomePresentationClass()
  7.         : this(IocContainer.Resolve<ISomeServiceClass>()), IocContainer.Resolve<ISomeOtherServiceClass>())
  8.     {}
  9.  
  10.     public SomePresentationClass(ISomeServiceClass firstService, ISomeOtherServiceClass secondService)
  11.     {
  12.         this.firstService = firstService;
  13.         this.secondService = secondService;
  14.     }
  15.  
  16.     // ...
  17.  
  18. }
You can then call the first constructor to have the services generated by the IoC container or the second constructor to pass in a specific service implementation, e.g. a mock or fake.