Comment désérialiser JSON pour les objets dont le type est correct, sans avoir à définir le type avant de la main?

J'ai cherché à travers des questions similaires et ne pouvais pas trouver quelque chose qui correspondait tout à fait ce que je cherchais.

Nouvelle C# afin de garder avec moi s'il vous plaît.

J'ai quelques fichiers json que je suis de la désérialisation. Je veux que les fichiers de désérialiser des objets du type correct, sans avoir à définir le type avant de la main. Voici mon code:

public class loadJson
    {
        //path of the file location
        public void readJson(string path)
        {
            //array of files at the path location. right now just reading one file
            FileInfo[] files = new DirectoryInfo(path).GetFiles("seleniumExample.json").ToArray();

            foreach (FileInfo fi in files)
            {

                dynamic b1 = null;
                using (StreamReader file = new StreamReader(fi.FullName))
                {

                    string fileText = file.ReadToEnd();
                    //Console.WriteLine(fileText);

                    try
                    {
                        b1 = Newtonsoft.Json.JsonConvert.DeserializeObject(fileText);
                    }
                    catch(Exception e)
                    {
                        Console.WriteLine("ERROR!!!! " + e.ToString());
                    }

                    file.Close();
                }
            }
        }
    }

J'ai un tas de types d'objet que je vais nourrir mon programme par le biais de fichiers json.

Je ne veux pas avoir à appeler explicitement b1 une Offre, ou d'un Client, ou de toute autre classe prédéfinie. Si je ne explicitement appel b1 une Offre, il charge toutes les infos pour l'amende et remplit le bon de variables d'instance.

Mais quand j'utilise "dynamique" ou "objet", il ne peut pas le comprendre et juste initialise à un "objet".

Est-il un moyen pour effectuer générique de la désérialisation et l'avoir créer un objet de la classe correcte basée sur les champs définis dans le fichier json?

Merci d'avance pour l'aide, et je m'excuse si ma question est incroyablement clair. Si oui, s'il vous plaît laissez-moi savoir comment je peux aider à lever toute ambiguïté. Merci encore.

Is there a way to perform generic deserialization and have it create an object of the correct class based on the fields defined in the json file? Supposons que Json.Net deviné le correct de la classe et retourné l'objet. Comment voulez-vous utiliser dans votre code? Vous ne savez toujours pas le type de b1 lors de l'écriture de votre code.
Donc, ma pensée est ceci: au Lieu d'écrire une de ces readJson() les méthodes de chaque classe que je vais potentiellement alimenter mon programme comme un fichier JSON, j'ai pensé que je pouvais le faire dans un générique de la mode et de ne pas avoir à réutiliser trop de code. N'est-ce pas logique? Encore une fois, je suis nouveau en c# et le développement de logiciels en général, donc je suis ouvert à l'idée que cela pourrait ne pas être la meilleure façon d'aller.
Vous avez la possibilité de contrôler le format & contenu des fichiers JSON? Ou sont-ils un?
J'ai la capacité de contrôler le format et le contenu.
Faire tous les fichiers JSON dans le répertoire de stocker des objets de même type?

OriginalL'auteur kdeez | 2015-04-17