In this post we are going to learn about How we can do dependency injection with StructureMap. Here we are going to take a sample application of shopping cart. This shopping cart can process two type of orders 1. Sales order 2. Purchase Order. We want an abstraction for this. So first we are going to create an interface IOrder which will be implemented by both Purchase Order and Sales Order classes.
Following is a code for that.
Following is a code for that.
public interface IOrder { void Process(); }And following is a implementation of SalesOrder class.
public class SalesOrder : IOrder { public void Process() { Console.WriteLine("Sales Order Processed"); } }Same way following is a implementation of PurchaseOrder class.
public class PurchaseOrder : IOrder { public void Process() { Console.WriteLine("Purchase Order Processed"); } }And following is a code for Shopping Cart.
public class ShoppingCart { private readonly IOrder _order; public ShoppingCart(IOrder order) { _order = order; } public void CheckOut() { _order.Process(); } }