Je tire des données sérialisées d'une base de données avec un type d'objet (où un champ contient le type d'objet et un autre contient une chaîne XML de données sérialisées).Puis-je implémenter un type générique et lui transmettre un type connu uniquement lors de l'exécution?
J'ai un sérialiseur générique qui a une sérialisation et de la méthode deserialize:
public static class Serializer<T>
{
public static string Serialize(T objectData) { }
public static T Deserialize(string xmlData) { }
}
Étant donné que le type d'objet est spécifié dans le champ de base de données, est-il un moyen pour moi de définir dynamiquement ce que T est ? - Ceci est ma ligne de pensée (bien que cela ne fonctionne pas):
Type t = Type.GetType(objectTypeName);
t objData = Serializer<t>.Deserialize(objectXmlString);
J'espérais factoriser un code sur une instruction switch où T est une valeur de consigne, mais je ne peux pas savoir si cela peut être fait, ou si oui, comment j'y arriverais.
Merci d'avance.
Wow! Je n'ai jamais su cela! Très utile. –
Oops, ça va m'apprendre à coder directement dans SO. Je voulais vraiment les écrire comme des méthodes statiques. Merci d'avoir fait remarquer cela. – BenAlabaster