Autofac PropertiesAutowired - É possível ignorar uma ou mais propriedades?

Apesar do conselho de passar as dependências pelo construtor, eu descobri que o custo de desenvolvimento de ter construtores sem parâmetros e depois conectar automaticamente todas as propriedades de tudo é significativamente menor e facilita muito o desenvolvimento e a manutenção do aplicativo. No entanto, às vezes (em um modelo de exibição, por exemplo), tenho uma propriedade registrada no contêiner, mas não desejo preencher na construção (por exemplo, o item selecionado vinculado a um contêiner).

Existe alguma maneira de dizer ao contêiner que ignore determinadas propriedades quando liga automaticamente o resto?

No momento, estou apenas redefinindo as propriedades marcadas com um atributo no evento on ativado a la:

public static IRegistrationBuilder<TLimit, ScanningActivatorData, TRegistrationStyle> 
    PropertiesAutowiredExtended<TLimit, TRegistrationStyle>(
    this IRegistrationBuilder<TLimit, ScanningActivatorData, TRegistrationStyle> builder)
{
    builder.ActivatorData.ConfigurationActions.Add(
        (type, innerBuilder) =>
        {
            var parameter = Expression.Parameter(typeof(object));
            var cast = Expression.Convert(parameter, type);
            var assignments = type.GetProperties()
                .Where(candidate => candidate.HasAttribute<NotAutowiredAttribute>())
                .Select(property => new { Property = property, Expression = Expression.Property(cast, property) })
                .Select(data => Expression.Assign(data.Expression, Expression.Default(data.Property.PropertyType)))
                .Cast<Expression>()
                .ToArray();

            if (assignments.Any())
            {
                var @action = Expression
                    .Lambda<Action<object>>(Expression.Block(assignments), parameter)
                    .Compile();

                innerBuilder.OnActivated(e =>
                {
                    e.Context.InjectUnsetProperties(e.Instance);
                    @action(e.Instance);
                });
            }
            else
            {
                innerBuilder.OnActivated(e => e.Context.InjectUnsetProperties(e.Instance));
            }
        });

    return builder;
}

Existe uma maneira melhor de fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion