Мысли о том, как ссылаться на имена ключей web.config в коде - PullRequest
1 голос
/ 01 июля 2010

Если в файле web.config или app.config есть запись appsettings, как лучше всего обратиться к его ключу в файле кода?

Разработчики, с которыми я работал, имеют разные мнения на этот счет. Некоторые говорят, что нужно жестко закодировать строку, а другие предполагают, что должен быть файл, содержащий строковые константы, а в вашем коде вы используете константу в качестве ключа appsettings.

Мне было бы интересно услышать другие мнения по этому поводу. Чем ты занимаешься? Почему это лучшее?

Ответы [ 4 ]

5 голосов
/ 01 июля 2010

Строковые константы лучше, чем ничего, но я бы изначально проголосовал за использование класса конфигурации для обеспечения строго типизированного, интеллигентного дружественного доступа к значениям конфигурации. Если бы я почему-то застрял с использованием AppSettings.

В более совершенном мире я бы проголосовал за то, чтобы вообще избегать appSettings и использовать пользовательские классы конфигурации, поскольку они намного, намного чище в долгосрочной перспективе.

4 голосов
/ 01 июля 2010

Пропустите строковые константы и вместо этого создайте класс-оболочку конфигурации.

class MyConfiguration
{
    public static string SomeConfigValue
    {
        get
        {
            return WebConfigurationManager.AppSettings["SomeConfigValue"];
        }
    }

    public static int SomeOtherConfigValue
    {
        get
        {
            return int.Parse(WebConfigurationManager.AppSettings["SomeOtherConfigValue"];
        }
    }

    //..and so on
}

Тогда вы можете получить его так:

string s = MyConfiguration.SomeConfigValue;
int i = MyConfiguration.SomeOtherConfigValue;

(Вы можете не использовать статическиемаршрут, если вы хотите удалить зависимости от системы конфигурации во время тестирования модуля)

2 голосов
/ 01 июля 2010

Строковые константы для выигрыша.

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

1 голос
/ 01 июля 2010

Я всегда был поклонником метода Рика Страла.

Что касается громоздкости статических строк, разбейте ваш класс на подклассы и свойства, если вам нужно.Например, в приложении, над которым я сейчас работаю, у меня есть App.Settings для общих настроек, App.EmailSettings для настроек электронной почты и App.EventSettings для настроек ведения журнала событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...