J'ai une application qui utilise le fichier App.config pour stocker les paramètres utilisés dans l'application. Les paramètres représentent les noms de fichiers, les chemins et similaires.Quelle est l'approche correcte pour gérer les paramètres lus à partir du fichier de configuration?
L'appel principal se présente comme suit:
CsvExtractor.ExtractDataAndCopyFiles();
...
public class CsvExtractor
{
public static void ExtractDataAndCopyFiles()
{
var eventList = DataReader.ReadInputCsvFile(ExtractorParams.InputCsvFile, ExtractorParams.SheetName);
DataWriter.WriteOutputCsvFile(
ExtractorParams.OutputCsvFile,
CreateExtractData(eventList),
ExtractorParams.EventFolder,
ExtractorParams.BlobFolder,
ExtractorParams.MissingFiles);
}
...
}
Quelle est l'approche correcte:
1) Utilisez la classe séparée comme suit:
public class ExtractorParams
{
public static string InputCsvFile
{
get { return ConfigurationManager.AppSettings["InputCsvFile"]; }
}
public static string SheetName
{
get { return ConfigurationManager.AppSettings["SheetName"]; }
}
public static string EventFolder
{
get { return ConfigurationManager.AppSettings["EventFolder"]; }
}
public static string BlobFolder
{
get { return ConfigurationManager.AppSettings["BlobFolder"]; }
}
public static string OutputCsvFile
{
get { return ConfigurationManager.AppSettings["OutputCsvFile"]; }
}
public static string MissingFiles
{
get { return ConfigurationManager.AppSettings["MissingFiles"]; }
}
}
et l'utiliser en cas de besoin comme ci-dessus .
Ou:
2) Utilisez le tableau de paramètres comme suit:
CsvExtractor.ExtractDataAndCopyFiles(list_of_params);
...
public class CsvExtractor
{
public static void ExtractDataAndCopyFiles(params string[] list)
{
...
}
...
}
Il n'y a pas de réponses "correctes" seulement pour les commentaires. Certains préfèrent les collections pour réduire le nombre de paramètres; d'autres préfèrent des paramètres distincts, de sorte qu'il est plus clair ce qui est nécessaire pour que la fonction fonctionne correctement. –
En outre, si vous utilisez la première approche lorsque vous modifiez le nom du paramètre, vous devez le modifier en un seul endroit. –