ASP.net почему только строка настроек приложения? - PullRequest
3 голосов
/ 25 марта 2011
    <appSettings>
        <!-- Settings file for website! -->
        <add key="DefaultCookieExpiryMins" value="30" />
    </appSettings>

Почему я должен установить все как строку?Почему у меня не может быть разных типов данных, таких как int, чтобы помочь мне прекратить все бросать?

Ответы [ 2 ]

6 голосов
/ 25 марта 2011

Именно поэтому я предпочитаю настраиваемые разделы конфигурации, а не просто помещать пары ключ / значение в appSettings. См. эту статью MSDN для получения дополнительной информации о том, как создать свой собственный раздел конфигурации. Если у вас есть собственный класс раздела конфигурации, вы сможете получить доступ к настройкам любого типа данных, который вам нужен.

0 голосов
/ 25 марта 2011

Я просто использую дженерики для подобных вещей.

public static T GetConfigurationValue<T>(string keyName)
        {
            if (System.Configuration.ConfigurationManager.AppSettings[keyName] != null)
            {
                T result;
                try
                {
                    result = (T)Convert.ChangeType(System.Configuration.ConfigurationManager.AppSettings[keyName], typeof(T));
                }
                catch
                {
                    return default(T);
                }

                return result;
            }

            throw new ArgumentException("A key with the name " + keyName + " does not exist in the current configuration.", keyName);
        }

Использование: GetConfigurationValue<int>("DefaultCookieExpiryMins");

...