Excluindo itens específicos em uma coleção ao serializar para JSON

Estou tentando "selecionar" quais objetos em uma coleção de um tipo específico que quero serializar.

Exemplo de configuração:

public class Person
{
    public string Name { get; set; }

    public List<Course> Courses { get; set; }
}

public class Course
{
    ...

    public bool ShouldSerialize { get; set; }
}

Eu preciso ser capaz de excluir todos os cursos da coleção Person.Courses onde ShouldSerialize é false. Isso precisa ser feito dentro do ContractResolver - a propriedade ShouldSerialize é um exemplo, no meu cenário real, pode haver outros critérios. Prefiro não ter que criar um ShouldSerializeCourse (conforme especificado aqui:http://james.newtonking.com/json/help/index.html?topic=html/ConditionalProperties.htm )

Não consigo descobrir qual método substituir no ContractResolver. Como eu iria fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion