private static Expression GetMemberExpression( MemberInfo member, RegistrationContext registrationContext, ResolutionContext resolutionContext) { var memberTypeInfo = member.AsTypeInformation(registrationContext, resolutionContext.CurrentContainerContext.ContainerConfiguration); var injectionParameter = registrationContext.InjectionParameters.SelectInjectionParameterOrDefault(memberTypeInfo); if (injectionParameter != null) { return(injectionParameter); } var memberExpression = resolutionContext.CurrentContainerContext .ResolutionStrategy.BuildExpressionForType(resolutionContext, memberTypeInfo); if (memberExpression != null || resolutionContext.NullResultAllowed) { return(memberExpression); } var memberType = member is PropertyInfo ? "property" : "field"; throw new ResolutionFailedException(memberTypeInfo.ParentType, memberTypeInfo.DependencyName, $"Unresolvable {memberType}: ({memberTypeInfo.Type.FullName}){memberTypeInfo.ParameterOrMemberName}."); }