Использование обобщений с XmlSerializer

При использовании XML-сериализации в C # я использую такой код:

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

(и аналогичный код для десериализации).

Это требует кастинга и не очень приятно. Есть ли способ, прямо в .NET Framework, использовать дженерики с сериализацией? То есть написать что-то вроде:

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

Ответы на вопрос(5)

Ваш ответ на вопрос