c# - Нарушение изменений в.NET 4.0




.net-4.0 (4)

Существует много информации о новых функциях и классах в новом 4.0, однако есть также изменения, которые могут повлиять на существующие приложения, например

  1. Timespan теперь реализует IFormattable и старую строку. Format () с недопустимыми параметрами генерирует исключение вместо вызова простой ToString (). Тем не менее, команда CLR обеспечивает приятную возможность включить поведение из предыдущей версии с настройкой конфигурации - TimeSpan_LegacyFormatMode.

    CLR Inside Out

  2. Доступ к событиям внутри класса, где они объявлены с помощью + = или - =, приведет к вызову add / remove сгенерированных аксессуаров, которые возвращают void. Некоторый код даже не компилируется в версии 4.0.

    Блог Криса Берроуза

  3. CAS устарел и для его использования по-прежнему необходимо использовать специальные настройки в конфигурации - NetFx40_LegacySecurityPolicy

Поэтому я задаюсь вопросом, что такое другие изменения, и можно ли найти хотя бы предварительный список изменений, которые могут или могут нарушить существующие функции с выпуском .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 # один и включил изменения ковариации и контравариантности, упомянутые Эриком Липпертом, и изменения событий, обсуждаемые Крисом Берроузом. Также существуют некоторые нарушения в отношении необязательных параметров, встроенных типов взаимодействия и вывода типа группы методов.

Обновить:

Еще один полезный документ (из группы документации .NET): http://msdn.microsoft.com/en-us/library/ee941656%28VS.100%29.aspx


Ковариантные и контравариантные преобразования вводят некоторые неясные, но возможные нарушения при перекомпиляции:

http://blogs.msdn.com/ericlippert/archive/2007/11/02/covariance-and-contravariance-in-c-part-nine-breaking-changes.aspx

Группа обучения пользователей C # собирает список известных потенциальных изменений в новой версии компилятора, более подробно см. Ответ выше.



Я только что исправил ошибку в производственном приложении, которое недавно перешло на .NET 4.0.

Связывание данных, в котором используются вложенные свойства, выбрасывается:

ArgumentException: Cannot bind to the property or column 'SomeProperty' on the DataSource.

По-видимому, это известная проблема с обходным решением. Я не мог найти его в официальных списках, и ошибка в Microsoft Connect была закрыта как «Не воспроизводимая».

Вложенные свойства определены в строках, поэтому мне пришлось искать их все вручную.





.net-4.0