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); } }
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); }