为什么我不能在ASP.NET 2.0中使用对象初始化器?

时间:2009-01-27 14:43:58

标签: c# asp.net object-initializers

为什么我可以在针对.NET 2.0的Visual Studio 2008 Windows项目等中使用Object Initializers但不能 - 在针对.NET 2.0的ASP.NET项目中?

我知道这是C#3.0的功能,但不要 - 为什么可以在.NET 2.0项目中使用它。

5 个答案:

答案 0 :(得分:7)

可能是因为针对2.0框架的ASP.Net内容假设它将以可能需要动态编译一些代码的模式运行。由于它在2.0模式下运行,它将在该阶段获得2.0编译器(因此依赖于3.0编译器的任何东西都将失败)

当从“普通”项目中定位2.0代码库时,编译就完成了,因此依赖3.0编译器功能就可以了。

答案 1 :(得分:1)

当您定位.NET 2.0运行时时,您也将目标锁定在C#2.0编译器上。该版本的编译器不了解3.0功能。

答案 2 :(得分:1)

这是一个现有的question,它涉及在.NET 2.0项目中使用C#3.0功能。它解释了哪些C#3.0功能可用,哪些不可用以及如何使用它们。

为了帮助您解决任何特定问题,我们需要具体细节。

答案 3 :(得分:0)

C#中有关高级功能的最佳信息来源以及它们从C#1.0到3.0的演变是Jon Skeet's book。他经常在这里,甚至可能提供一些额外的见解。但是,你真的应该有这本书。

答案 4 :(得分:0)

正常的ASP.NET网站即时编译,这意味着它将使用Web服务器上该虚拟目录可用的编译器。如果它设置为ASP.NET 2.0,它将使用2.0编译器(而不是针对.NET 2.0的3.0编译器)。 我假设当您将您的网站转换为Web应用程序时,您将能够以3.0为目标并仍然使用某些3.0功能。我建议尝试,我会,但我现在没有时间。让我们知道它是否有效; - )