/// <summary> /// Returns the dependencies required by the current implementation. /// </summary> /// <param name="map">The implementation map.</param> /// <returns>The list of required dependencies required by the current implementation.</returns> public IEnumerable <IDependency> GetRequiredDependencies(IDependencyContainer map) { var requiredDependencies = _implementation.GetRequiredDependencies(map); var dependencyList = new List <IDependency>(requiredDependencies); var results = new HashedSet <IDependency>(dependencyList); var properties = TargetType.GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (var property in properties) { // Skip properties that don't meet the filter criteria if (!_propertyFilter(property) || !property.CanWrite) { continue; } var dependency = _propertyDependencyResolver(property); if (dependency == null || results.Contains(dependency)) { continue; } results.Add(dependency); } return(results); }
/// <summary> /// Returns the dependencies required by the current implementation. /// </summary> /// <returns>The list of required dependencies required by the current implementation.</returns> public IEnumerable <IDependency> GetRequiredDependencies(IDependencyContainer map) { return(_actualImplementation.GetRequiredDependencies(map)); }