2009-12-18 3 views
2

Просто интересно, как избежать магических строк в Querystrings? У меня есть много кода, напримерMagic QueryStrings - хорошие шаблоны, которых следует избегать?

if (string.IsNullOrEmpty(request.Form["projectId"]) || 
    !int.TryParse(request.Form["projectId"],out projectId)) 
    return null; 

и, естественно, мне нужно жестко запрограммировать projectId на вызывающих страницах.

Один из способов состоит в том, чтобы иметь статический/const «словарь», который определяет нагрузку идентификаторов «QueryStringCreateProjectProjectId», но затем я должен изменить свои файлы JavaScript, чтобы стать серверными.

Теперь я понимаю, что, возможно, нет идеального решения для этого, потому что абстракция может достигать определенной степени, и в какой-то момент я должен положить строки и надеяться, что никогда не сделаю опечатку, но мне интересно, какие решения находятся?

Создание этого CW, поскольку это пограничный опрос/субъективный, но я считаю, что он принадлежит SO.

ответ

4

Для общих параметров запроса я создал класс, который знает все «магические» имена (строковые константы) для создания ссылок на различные страницы сайта. Я установил несколько свойств, и класс испускает тег <a> с правильным URL-адресом. Ни одна из моих ссылок не закодирована - все внутренние URL-адреса построены с использованием этого класса.

Другой класс использует тот же набор константных строковых имен, чтобы прочитать строку запроса в запросе. Я создаю объект с этим классом, когда получаю запрос, и мои страницы могут затем считывать необходимые значения из этого объекта (опять же, без необходимости знать магические строки).

Каждая область сайта, у которой есть свой собственный набор «волшебных» имен за пределами общего набора, может добавлять параметры к ссылке (используя метод в том же классе компоновщика ссылок), а затем читать их из строки запроса в обычным способом. Они также должны использовать константы, чтобы избежать опечаток.

Смежные вопросы