¿Cómo validar contra cada cadena en una lista usando la validación de fluidez?

Tengo un modelo de vista MVC3 definido como:

<code>[Validator(typeof(AccountsValidator))]
public class AccountViewModel
{
    public List<string> Accounts { get; set; }
}
</code>

Con la validación definida usando FluentValidation (v3.3.1.0) como:

<code>public class AccountsValidator : AbstractValidator<AccountViewModel>
{
    public AccountsValidator()
    {
        RuleFor(x => x.Accounts).SetCollectionValidator(new AccountValidator()); //This won't work
    }
}
</code>

Y la validación de la cuenta posiblemente se definiría:

<code>public class AccountValidator : AbstractValidator<string> {
    public OrderValidator() {
        RuleFor(x => x).NotNull();
        //any other validation here
    }
}
</code>

Me gustaría que cada cuenta en la lista fuera validada como se describe en eldocumentación. Sin embargo, la llamada aSetCollectionValidator No funciona, ya que esta no es una opción cuando se usa unaList<string> aunque la opción estaría allí si se definiera comoList<Account>. ¿Me estoy perdiendo de algo? Podría cambiar mi modelo para usarList<Account> y luego defina una clase de cuenta, pero realmente no quiero cambiar mi modelo para adaptarlo a la validación.

Para referencia, esta es la vista que estoy usando:

<code>@model MvcApplication9.Models.AccountViewModel

@using (Html.BeginForm())
{
    @*The first account number is a required field.*@
    <li>Account number* @Html.EditorFor(m => m.Accounts[0].Account) @Html.ValidationMessageFor(m => m.Accounts[0].Account)</li>

    for (int i = 1; i < Model.Accounts.Count; i++)
    {
        <li>Account number @Html.EditorFor(m => m.Accounts[i].Account) @Html.ValidationMessageFor(m => m.Accounts[i].Account)</li>
    }

    <input type="submit" value="Add more..." name="add"/>
    <input type="submit" value="Continue" name="next"/>
}
</code>

Respuestas a la pregunta(3)

Su respuesta a la pregunta