Тот факт, что этот метод является SecurityCritical вместо SecuritySafeCritical, вероятно, является артефактом того факта, что в какой-то момент версия .NET Framework для настольных компьютеров требовала, чтобы EnvironmentPermission получил эти данные.
С тех пор мы снизили спрос на настольные ПК, поэтому действительно имеет смысл сделать SafeCritical для Silverlight. Я поднял это как проблему, которую мы должны исправить в будущем выпуске Siverlight, и похоже, что мы сможем это сделать.
Если вы найдете больше случаев, когда есть общедоступные методы, которые считают, что они должны быть SafeCritical вместо Critical в Silverlight, оставьте отзыв на Microsoft Connect . Реальные люди смотрят на эти вопросы, и это лучший способ сообщить нам о ваших болевых точках.
На данный момент похоже, что вам придется использовать предоставленный обходной путь, но в какой-то момент мы исправим аннотацию безопасности здесь.
Это было исправлено в Silverlight 4.