private static IUnityContainer LoadCustDict() { IUnityContainer cust = new UnityContainer(); IValidation <ICustomer> custValidation = new PhoneValidation( new CustomerBasicValidation()); cust.RegisterType <CustomerBase, Customer>("Lead", new InjectionConstructor(custValidation, "Lead")); custValidation = new CustomerBasicValidation(); cust.RegisterType <CustomerBase, Customer>("SelfService", new InjectionConstructor(custValidation, "SelfService")); custValidation = new CustomerAddressValidation( new CustomerBasicValidation()); cust.RegisterType <CustomerBase, Customer>("HomeDelivery", new InjectionConstructor(custValidation, "HomeDelivery")); custValidation = new PhoneValidation( new CustomerBillValidation( new CustomerAddressValidation( new CustomerBasicValidation()))); cust.RegisterType <CustomerBase, Customer>("Customer", new InjectionConstructor(custValidation, "Customer")); return(cust); }
public static AnyType Create(string type) { // Design pattern :- Lazy loading != Eager loading if (ObjectsOfOurProjects == null) { ObjectsOfOurProjects = new UnityContainer(); //Lead IValidation <ICustomer> leadValidation = new PhoneValidation(new CustomerBasicValidation()); ObjectsOfOurProjects.RegisterType <CustomerBase, Customer>("Lead", new InjectionConstructor(leadValidation, "Lead")); //SelfService IValidation <ICustomer> selfServiceValidation = new CustomerBasicValidation(); ObjectsOfOurProjects.RegisterType <CustomerBase, Customer>("SelfService", new InjectionConstructor(selfServiceValidation, "SelfService")); //HomeDelivery IValidation <ICustomer> homeDeliveryValidation = new AddressValidation(new CustomerBasicValidation()); ObjectsOfOurProjects.RegisterType <CustomerBase, Customer>("HomeDelivery", new InjectionConstructor(homeDeliveryValidation, "HomeDelivery")); //Customer IValidation <ICustomer> customerValidation = new AddressValidation(new BillDateValidation(new BillAmountValidation(new PhoneValidation(new CustomerBasicValidation())))); ObjectsOfOurProjects.RegisterType <CustomerBase, Customer>("Customer", new InjectionConstructor(customerValidation, "Customer")); } // Design pattern :- RIP Replace If with Poly return(ObjectsOfOurProjects.Resolve <AnyType>(type)); }
public static AnyType Create(string Type) { // Design pattern :- Lazy loading. Eager loading if (ObjectsofOurProjects == null) { ObjectsofOurProjects = new UnityContainer(); IValidation <ICustomer> custValidation = new PhoneValidation(new CustomerBasicValidation()); ObjectsofOurProjects.RegisterType <CustomerBase, Customer> ("Lead", new InjectionConstructor(custValidation, "Lead")); custValidation = new CustomerBasicValidation(); ObjectsofOurProjects.RegisterType <CustomerBase, Customer> ("SelfService", new InjectionConstructor(custValidation, "SelfService")); custValidation = new CustomerAddressValidation(new CustomerBasicValidation()); ObjectsofOurProjects.RegisterType <CustomerBase, Customer> ("HomeDelivery", new InjectionConstructor(custValidation, "HomeDelivery")); custValidation = new PhoneValidation( new CustomerBillValidation( new CustomerAddressValidation( new CustomerBasicValidation()))); ObjectsofOurProjects.RegisterType <CustomerBase, Customer> ("Customer" , new InjectionConstructor( custValidation, "Customer")); } //Design pattern :- RIP Replace If with Poly return(ObjectsofOurProjects.Resolve <AnyType>(Type)); }
public static T Create(string type) { if (projectObjects == null) { projectObjects = new UnityContainer(); IValidation <ICustomer> custValidation = new PhoneValidation(new CustomerBasicValidation()); //projectObjects.RegisterType<CustomerBase, Customer>("Customer", // new InjectionConstructor(new CustomerValidationAll())); projectObjects.RegisterType <CustomerBase, Customer>("Lead", new InjectionConstructor(custValidation, "Lead")); custValidation = new CustomerBasicValidation(); projectObjects.RegisterType <CustomerBase, Customer>("SelfService", new InjectionConstructor(custValidation, "SelfService")); custValidation = new CustomerAddressValidation(new CustomerBasicValidation()); projectObjects.RegisterType <CustomerBase, Customer>("HomeDelivery", new InjectionConstructor(custValidation, "HomeDelivery")); custValidation = new PhoneValidation( new CustomerBillValidation( new CustomerAddressValidation( new CustomerBasicValidation() ) ) ); projectObjects.RegisterType <CustomerBase, Customer>("Customer", new InjectionConstructor(custValidation, "Customer")); //projectObjects.RegisterType<IRepository<ICustomer>, CustomerDAL>("ADODal"); } return(projectObjects.Resolve <T>(type)); }