Exemple #1
0
        T exec <T>(IReadOnlyContainer container)
        {
            IServiceRegistration serviceRegistration = new ServiceRegistrationBuilder()
                                                       .AddType(typeof(T))
                                                       .Build();

            ServiceFlags flags = new ServiceFlagsProvider(new AttributesFinder(), new MemberGenerator(new MemberFlagsGenerator())).ProvideFlags(typeof(T));

            IService service = new ServiceBuilder()
                               .AddRegistration(serviceRegistration)
                               .AddFlags(flags)
                               .AddInfo(null)
                               .Build();

            object instance = Activator.CreateInstance <T>();

            ObjectPostProcessor postProcessor = new ObjectPostProcessor(new InstanceMembersValueInjector(new MemberValueSetter(), new InstanceMembersFinder()),
                                                                        new InjectMemberValuesInjector(new MemberValueSetter(), new InjectFlagsProvider(), new MemberDeclarationTypeProvider(), new InjectValueProvider()),
                                                                        new TryInjectMemberValuesInjector(new ServiceAttributeProvider(), new MemberDeclarationTypeProvider(),
                                                                                                          new MemberValueSetter(), new InjectValueProvider()),
                                                                        new AutoMemberValuesInjector(new MemberDeclarationTypeProvider(), new ServiceAttributeProvider(),
                                                                                                     new AutoValueGenerator(
                                                                                                         new IsEnumerableChecker(new GenericTypeGenerator(), new TypeGenericParametersProvider(), new TypeContainsGenericParametersChecker()),
                                                                                                         new EnumerableGenerator(new TypeGenericParametersProvider(), new GenericTypeGenerator()), new TypeIsArrayChecker(),
                                                                                                         new ArrayGenerator(), new TypeIsValueTypeChecker(), new ValueTypeActivator()), new MemberValueSetter()));

            postProcessor.Process(instance, service, container);

            return((T)instance);
        }
Exemple #2
0
        IEnumerable <IMember> exec <T>()
        {
            ServiceFlagsProvider provider = new ServiceFlagsProvider(new AttributesFinder(), new MemberGenerator(new MemberFlagsGenerator()));
            ServiceFlags         flags    = provider.ProvideFlags(typeof(T));

            IEnumerable <IMember> members = new InstanceMembersProvider().ProvideMembers(flags);

            return(members);
        }
Exemple #3
0
        ServiceFlags exec <T>()
        {
            ServiceFlagsProvider provider = new ServiceFlagsProvider(new AttributesFinder(), new MemberGenerator(new MemberFlagsGenerator()));

            return(provider.ProvideFlags(typeof(T)));
        }