You cannot use object initializers (new T { Property = value }
) unless you are writing for C# 3.0 or above.
Unfortunately, for pre-C# 3.0, you'll need to do:
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);
A bit more about object initializers here.
The easiest way to tell what version of C# you are using is by looking at what version of Visual Studio you are using. C# 3.0 came bundled with Visual Studio 2008.
You do have a "way out" however. Prior to .NET 4.0 but after .NET 2.0, all new language and framework features were actually just managed libraries that sat on top of version 2.0 of the CLR. This means that if you download the C# 3.0+ compiler (as part of a later framework), you can compile your code against that compiler. (This is not trivial to do in an ASP.NET environment.)