예제 #1
0
        public static SalaryProvider CreateSalaryProvider(TypeOfContract typeOfContract)
        {
            var providers = Assembly.GetAssembly(typeof(SalaryProvider))
                            .GetTypes()
                            .Where(t => typeof(SalaryProvider).IsAssignableFrom(t));

            var provider = providers.Single(x => x.Name.ToLowerInvariant().Contains(typeOfContract.ToString().ToLowerInvariant()));

            return((SalaryProvider)Activator.CreateInstance(provider));
        }