Accès aux chaînes de connexion depuis App.config : éviter les exceptions NullReferenceExceptions
La récupération des chaînes de connexion à partir de votre fichier App.config nécessite une manipulation minutieuse pour éviter NullReferenceException
les erreurs. Considérez l'exemple de code suivant :
<code class="language-csharp">var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"] .ConnectionString, DataBaseProvider);</code>
Cet extrait de code, lorsqu'il est utilisé avec un fichier App.config standard comme celui-ci :
<code class="language-xml"><?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" name="Test" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration></code>
peut lancer un NullReferenceException
si la chaîne de connexion "Test" n'est pas trouvée. Le problème réside dans l'accès direct à .ConnectionString
sans vérifier null.
Une solution robuste consiste à vérifier l'existence de la chaîne de connexion avant d'accéder à ses propriétés :
<code class="language-csharp">var connectionString = ConfigurationManager.ConnectionStrings["Test"]; if (connectionString != null) { var connection = ConnectionFactory.GetConnection(connectionString.ConnectionString, DataBaseProvider); // ... use the connection ... } else { // Handle the case where the connection string is not found. // Log an error, throw an exception, or use a default connection. }</code>
Alternativement, une approche plus concise utilisant l'opérateur conditionnel nul (?.) peut être utilisée :
<code class="language-csharp">var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"]?.ConnectionString, DataBaseProvider);</code>
Cela gérera gracieusement le cas nul en définissant connection
sur null si "Test" est manquant. N'oubliez pas d'ajouter une gestion des erreurs appropriée dans ce scénario.
Enfin, pensez à inclure une référence à System.Configuration.dll
dans votre projet. Cet assembly fournit les classes nécessaires pour accéder aux paramètres de configuration. Sans cette référence, la compilation échouera.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!