Ответ 1
Он говорит NGen, что в порядке, чтобы встроить метод, который он применял даже в другой сборке.
Например:
-
String.Equals
имеет[TargetedPatchingOptOut]
- Вы пишете программу, которая вызывает
String.Equals
- Вы запускаете NGen в этой программе для максимальной производительности
- NGen встроит вызов
String.Equals
, заменив команду вызова метода на фактический код в методе.
Вызов метода (немного) дорогой, поэтому это повышение производительности для часто называемых методов.
Однако, если Microsoft обнаружит дыру безопасности в String.Equals
, они не могут просто обновить mscorlib.dll
, потому что это не повлияет на сборку, которую вы только NGen'd. (Так как у него есть исходный машинный код без ссылки String.Equals
).
Я предполагаю, что если это произойдет, обновление безопасности очистит хранилище NGen.
Обратите внимание, что этот атрибут полезен только в сборках .NET Framework. Вы не нуждаетесь в этом сами. Вы можете найти более подробную информацию об этом здесь: fooobar.com/info/44045/...