C #: переопределенные методы с атрибутами безопасности в .Net 4 - PullRequest
6 голосов
/ 29 января 2010

В .Net 4 некоторые методы теперь имеют другие атрибуты безопасности, чем они были в предыдущих версиях (то есть новый SecurityCriticalAttribute). Чтобы переопределить методы с разрешениями безопасности, относительные возможности безопасности в производном объявлении должны совпадать с доступными в базовом объявлении (или в исключении времени выполнения).

Унаследованные сборки не будут знать об этих новых атрибутах, и, поскольку код уже скомпилирован и метаданные уже созданы, мы не можем загрузить любой тип из тех сборок, которые переопределяют метод, который теперь имеет новый атрибут (как безопасность доступность не совпадает).

.Net .4 предназначен для совместимости с сборками pre .Net4? Если да, то есть ли решение / решение для этого?

1 Ответ

1 голос
/ 29 января 2010

Я не споткнулся об этом раньше, но после некоторых исследований кажется, что есть устаревшая поддержка с использованием опции NetFx40_LegacySecurityPolicy.

<configuration>
  <runtime>
    <NetFx40_LegacySecurityPolicy enabled="true" />
  </runtime>
</configuration>
...