Вы не можете использовать инициализаторы объектов (new T { Property = value }
), если вы не пишете для C # 3.0 или выше.
К сожалению, для pre-C # 3.0 вам нужно будет сделать:
ClaimsRequest cr = new ClaimsRequest();
cr.Country = DemandLevel.Request;
cr.Email = DemandLevel.Request;
cr.Gender = DemandLevel.Require;
cr.PostalCode = DemandLevel.Require;
cr.TimeZone = DemandLevel.Require;
request.AddExtension(cr);
Немного больше об инициализаторах объектов здесь.
Самый простой способ узнать, какую версию C # вы используете, это узнать, какая версия Visual Studioты используешь.C # 3.0 поставляется в комплекте с Visual Studio 2008.
У вас, однако, есть "выход".До .NET 4.0, но после .NET 2.0 все новые функции языка и фреймворка были фактически просто управляемыми библиотеками, которые располагались поверх версии 2.0 CLR.Это означает, что если вы загрузите компилятор C # 3.0+ (как часть более поздней среды), вы можете скомпилировать свой код для этого компилятора.(Это не тривиально в среде ASP.NET.)