T4MVC 2.6.65 и UseLowercaseRoutes=истинная ошибка

Добрый день!

Я использую последнюю версию 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();
    }

Это ошибка?


person artvolk    schedule 22.12.2011    source источник


Ответы (1)


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

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

person David Ebbo    schedule 22.12.2011