我想确保存在设置(C#4.5)。如果设置(在我的情况下为'CompteDefautFactureF')已经存在,则以下代码不会带来任何错误。但是,情况变得有些混乱,如果在user.xml文件中找不到任何条目,则会出现错误。
if (Properties.Settings.Default.CompteDefautFactureF != "")
{
foreach (ClsCompte l_Account in this.cbo_Compte_FF.Items)
{
if (l_Account.ID == Properties.Settings.Default.CompteDefautFactureF)
{
this.cbo_Compte_FF.SelectedItem = l_Account;
break;
}
}
}
else
{
this.cbo_Compte_FF.SelectedItem = null;
}
这是我的user.xml文件的内容(即以前保存的所有设置):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<userSettings>
<Finapp2013.Properties.Settings>
<setting name="CopyOperationStatus" serializeAs="String">
<value>False</value>
</setting>
<setting name="TransferScheduledOperations" serializeAs="String">
<value>True</value>
</setting>
<setting name="TransferScheduledOperationsDaysInAdvance" serializeAs="String">
<value>3</value>
</setting>
<setting name="MonnaieBase" serializeAs="String">
<value>CHF</value>
</setting>
<setting name="OpenExchangeRatesID" serializeAs="String">
<value>abcde</value>
</setting>
<setting name="NumberOfDecimalsCalculator" serializeAs="String">
<value>18</value>
</setting>
<setting name="AffichageSituationPatrimonialeToutesOp" serializeAs="String">
<value>True</value>
</setting>
<setting name="DisplayScheduledOperationsDaysInAdvance" serializeAs="String">
<value>5</value>
</setting>
</Finapp2013.Properties.Settings>
</userSettings>
</configuration>
如何正确解决此问题?谢谢你的帮助。
我通过编写如下方法找到了自己的方法:
public static bool doesSettingExist(string pSettingName)
{
List<string> l_Settings = null;
string l_Value = string.Empty;
bool l_Return = false;
try
{
// initialises the new list
l_Settings = new List<string>();
// feeds the list dictionary
foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties)
{
if (Properties.Settings.Default[currentProperty.Name] != null)
{
l_Settings.Add(currentProperty.Name);
}
}
if (l_Settings.Contains(pSettingName))
{
l_Return = true;
}
}
catch (Exception exc)
{
ClsErrorManager.manageException(exc);
}
finally
{
}
return l_Return;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句