Пример #1
0
            public TypeDescription(Type type)
            {
                Type = type;

                var constructor = type
                                  .GetConstructors()
                                  .SingleOrDefault(); // we're only going to support classes with a single public ctor right now ...

                if (constructor != null)
                {
                    _constructor = new ConstructorDescription(constructor);
                }
            }
Пример #2
0
        private object CreateInstance(IInjector injector, Type type)
        {
            var provider     = injector.DescriptionProvider.GetProvider(type);
            var constructors = provider.GetByAttribute <InjectAttribute>();
            ConstructorDescription constructor = null;

            if (constructors != null)
            {
                constructor = constructors.FirstOrDefault(m => m.Kind == MemberKind.Constructor) as ConstructorDescription;
            }
            if (constructor == null)
            {
                constructor = provider.DefaultConstructor;
            }
            if (constructor != null)
            {
                return(constructor.CreateInstance(type, injector));
            }

            var result = Activator.CreateInstance(type);

            return(result);
        }