Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }