C#4.5设置属性

劳伦特

我想确保存在设置(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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章