Почему я не могу использовать инициализаторы объектов в ASP.NET 2.0?

Почему я могу использовать Object Initializers в проектах Windows Visual Studio 2008 и т. Д., Ориентированных на .NET 2.0, но не могу - в проектах ASP.NET, ориентированных на .NET 2.0?

Я понимаю, что это особенности C # 3.0, но нет - почему это возможно использовать в проектах .NET 2.0.


person abatishchev    schedule 27.01.2009    source источник


Ответы (5)


Вероятно, потому, что материал ASP.Net, ориентированный на платформу 2.0, предполагает, что он будет работать в режиме, в котором ему, возможно, придется компилировать некоторый код на лету. Поскольку он работает в режиме 2.0, на этом этапе он получит компилятор 2.0 (поэтому все, что полагается на компилятор 3.0, выйдет из строя)

При нацеливании на кодовую базу 2.0 из «нормального» проекта компиляция выполняется сразу же, поэтому полагаться на функциональность компилятора 3.0 можно.

person ShuggyCoUk    schedule 27.01.2009

Когда вы ориентируетесь на среду выполнения .NET 2.0, вы также ориентируетесь на компилятор C # 2.0. Эта версия компилятора не поддерживает функции 3.0.

person JonStonecash    schedule 27.01.2009

Вот существующий вопрос , посвященный использованию функций C # 3.0 в проектах .NET 2.0. В нем объясняется, какие функции C # 3.0 доступны, а какие нет, и как их использовать.

Чтобы помочь вам с какой-либо конкретной трудностью, нам понадобятся конкретные детали.

person Vojislav Stojkovic    schedule 27.01.2009

Лучшим источником информации о расширенных возможностях C # и их эволюции от C # 1.0 до 3.0 является книга Джона Скита. Он бывает здесь, на SO, довольно часто и может даже предложить некоторые дополнительные сведения. Однако книга действительно должна быть у вас.

person Mark Brittingham    schedule 27.01.2009

Обычный веб-сайт ASP.NET компилируется на лету, что означает, что он будет использовать компилятор, доступный для этого виртуального каталога на вашем веб-сервере. Если он установлен на ASP.NET 2.0, он будет использовать компилятор 2.0 (а не компилятор 3.0, предназначенный для .NET 2.0). Я предполагаю, что когда вы конвертируете свой веб-сайт в веб-приложение, вы сможете настроить таргетинг на 3.0 и по-прежнему использовать некоторые функции 3.0. Я предлагаю попробовать это, я бы хотел, но сейчас у меня нет времени. Сообщите нам, работает ли это ;-)

person Erik van Brakel    schedule 27.01.2009