/// <summary> /// Determines whether a given type should be injected. /// </summary> /// <param name="member">The member info to check.</param> /// <returns><see langword="true"/> if a given type needs to be injected; otherwise <see langword="false"/>.</returns> public bool ShouldInject(MemberInfo member) { var propertyInfo = member as PropertyInfo; if (propertyInfo == null || propertyInfo.GetSetMethod(Settings.InjectNonPublic) == null) { return(false); } return(registeredTypes.Any(x => propertyInfo.DeclaringType.IsAssignableFrom(x)) && RegisteredTypes.Any(x => propertyInfo.PropertyType.IsAssignableFrom(x)) && propertyInfo.CanWrite); }