using System.Collections.Generic;
using StructureMap.Graph;
public class Customer:IBill
Console.WriteLine("Discount for the customer is 15%");
Console.WriteLine("Enter the amount");
int a =Convert.ToInt16(Console.ReadLine());
public class Specialcustomer:IBill
Console.WriteLine("Discount for the special customer is 25%");
Console.WriteLine("Enter the amount");
int a =Convert.ToInt16(Console.ReadLine());
public class Client:IClient
public Client(IBill bill)
double k = this.bill.Billing();
namespace StructureMapIOC
public static void Main(string[] args)
Console.WriteLine("Press 1 for customer and 2 for specialcustomer");
int c= Convert.ToInt16(Console.ReadLine());
var container = new Container();
container.Configure(x=>x.For<IBill>().Use<Customer>());
container.Configure(x=>x.For<IClient>().Use<Client>());
IClient client = container.GetInstance<IClient>();
double k= client.intro();
Console.WriteLine("Total is " +k);
var container = new Container();
container.Configure(x=>x.For<IBill>().Use<Specialcustomer>());
IBill bill = container.GetInstance<IBill>();
double k= bill.Billing();
Console.WriteLine("Total is " +k);