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