打破.NET 4.0的变化
新4.0中有很多关于新function和类的信息,但是也有一些可能影响现有应用程序的更改
-
Timespan现在实现IFormattable和旧的string.Format()与无效的选项将抛出exception,而不是调用简单的ToString()。 但是,CLR团队提供了一个很好的function,可以使用configuration设置 – TimeSpan_LegacyFormatMode从以前的版本启用行为。
CLR里面
-
在使用+ =或 – =声明的类中访问事件将导致调用add / remove生成的访问器返回void。 一些代码甚至不会在4.0中编译。
克里斯·伯罗斯博客
-
CAS已弃用,为了使其仍然需要在configuration中使用特殊设置 – NetFx40_LegacySecurityPolicy
所以我想知道还有什么其他的变化,是否有可能find至less初步的变化列表,可能会或可能会打破现有的function与.NET 4.0的发布?
语言文档团队为C#和VB发布更改单独的文档:
VB: http : //msdn.microsoft.com/en-us/library/cc714070%28VS.100%29.aspx
C#: http : //msdn.microsoft.com/en-us/library/ee855831%28VS.100%29.aspx
我写了C#之一,包括由Eric Lippert提到的协变和逆变突变,以及由Chris Burrows讨论的事件变化。 围绕可选参数,embedded式互操作types和方法组types推断还有一些突破性的变化。
更新:
一个更有用的文档(来自.NET文档团队): http : //msdn.microsoft.com/en-us/library/ee941656%28VS.100%29.aspx
协变和逆变转换在重编译时引入了一些模糊但可能的重大变化:
C#用户教育团队编译新版本编译器中已知的潜在重大更改列表,请参阅上面的答案以获取详细信息。
另外请注意,SmtpClient现在实现了IDisposable,所以你现在应该使用这样的东西:
using (var smtpclient = new SmtpClient()) { smtpclient.Send(message); }
根据这个页面 ,.NET 4.0框架中可能会有更多这样的“隐藏的阻塞”。 作者build议通过在你的代码中使用FxCop来find它们。
只是添加到列表中, 这里是RC的ASP.Net官方列表 ,我还没有遇到RTM。
我刚刚修复了一个最近转移到.NET 4.0的生产应用程序中的错误。
使用嵌套属性的数据绑定是抛出:
ArgumentException: Cannot bind to the property or column 'SomeProperty' on the DataSource.
这似乎是一个解决方法已知的问题 。 我无法在任何官方列表上find它,并且Microsoft Connect上的错误已被closures为“不可重现”。
嵌套属性全部在string中定义,所以我必须手动search它们。
- ToLowerInvariant()有什么问题?
- 可以在.Net 4.0中使用Tuple的实际示例?
- 使用多个MemoryCache实例
- maxRequestLength的最大值是多less?
- 使用Task.Factory.StartNew传递一个方法参数
- 在返回浮点数的方法中将结果投入浮点运算结果
- VSTS 2010 SGEN:错误:无法加载文件或程序集(从HRESULTexception:0x80131515)
- 尝试方法'System.Web.Helpers.Json..cctor()'来访问方法'System.Web.Helpers.Json.CreateSerializer()'失败
- 是否有可能在XP上运行.NET 4.5应用程序?