Here is the smallest possible example of using StructureMap 2.6.1 (download here) to do Dependency Injection.
Notice how on the line "ObjectFactory.GetInstance<Account>();" that StructureMap will create an account object and see that it needs an "ICustomer" object in its constructor and put a "Customer" object in its constructor for us.
using System;
using NBehave.Spec.NUnit;
using StructureMap;
namespace StructureMapTest {
public interface ICustomer { string GetName(); }
public class Customer : ICustomer
{
public string GetName(){return "T. Boone Pickens";}
public override string ToString() {return GetName();}
}
public class Account
{
public ICustomer MyCustomer { get; set;}
public Account(ICustomer customer) {
MyCustomer = customer;
}
}
class StructureMapRunner {
static void Main() {
ObjectFactory.Initialize(x => x.For<ICustomer>().Use<Customer>));
Account account = ObjectFactory.GetInstance<Account>();
account.MyCustomer.GetName().ShouldEqual("T. Boone Pickens");
}
}
}