Usando genéricos com XmlSerializer

Ao usar a serialização XML em C #, uso código como este:

public MyObject LoadData()
{
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyObject));
    using (TextReader reader = new StreamReader(settingsFileName))
    {
        return (MyObject)xmlSerializer.Deserialize(reader);
    }
}

(e código semelhante para desserialização).

Requer elenco e não é muito legal. Existe uma maneira, diretamente no .NET Framework, de usar genéricos com serialização? Ou seja, para escrever algo como:

public MyObject LoadData()
{
    // Generics here.
    XmlSerializer<MyObject> xmlSerializer = new XmlSerializer();
    using (TextReader reader = new StreamReader(settingsFileName))
    {
        // No casts nevermore.
        return xmlSerializer.Deserialize(reader);
    }
}

questionAnswers(5)

yourAnswerToTheQuestion