Я хотел бы использовать FluentAssertions для проверки всех методов, которые не украшены атрибутом NonActionAttribute. (Это уменьшит набор методов действий, автоматически генерируемых T4MVC в качестве заполнителей.)
Моя конкретная проблема связана с объединением методов MethodInfoSelector. Я хотел бы написать что-то вроде этого:
public MethodInfoSelector AllActionMethods() {
return TestControllerType.Methods()
.ThatReturn<ActionResult>()
.ThatAreNotDecoratedWith<NonActionAttribute>();
}
public static MethodInfoSelector ThatAreNotDecoratedWith<TAttribute>(this IEnumerable<MethodInfo> selectedMethods) {
return (MethodInfoSelector)(selectedMethods.Where(method => !method.GetCustomAttributes(false).OfType<TAttribute>().Any())); // this cast fails
}
Либо приведение завершается неудачей, либо если я конвертирую свои результаты в IEnumberable, я не могу связать дополнительные методы MethodInfoSelector.
Я был бы признателен за любую помощь либо в том, как создать MethodInfoSelector, либо в другом подходе к основной проблеме перечисления методов, которые не имеют определенного атрибута.