T4MVC 2.6.65 и UseLowercaseRoutes = истинная ошибка - PullRequest
3 голосов
/ 22 декабря 2011

Добрый день!

Я использую последний T4MVC от 2.6.65 от NuGet (обновлен с 2.6.64), я установил

// If true, use lower case tokens in routes for the area, controller and action names
static bool UseLowercaseRoutes = true;

И я получил ошибку:

The expression being assigned to '....' must be constant    ...\T4MVC.cs    

Вот сгенерированный код, который вызывает ошибку:

    [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
    public class ActionNameConstants {
        public const string Calc = ("Calc").ToLowerInvariant();
    }

Это ошибка?

1 Ответ

2 голосов
/ 22 декабря 2011

Извините, предыдущее изменение сломало его. Я только что выпустил новую сборку T4MVC (2.6.66), которая решает эту проблему. Что ж, это скорее обходной путь, поскольку он не генерирует постоянные токены при использовании UseLowercaseRoutes. Но это заставит нас идти вперед.

Корень проблемы в том, что C # не поддерживает использование .ToLowerInvariant () в константных строках. В идеале, это просто оценило бы это во время компиляции, но это не так умно:)

...