Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Tento článek je specifický pro .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.
Pomocník illegalPrepareConstrainedRegion spravovaného ladění (MDA) se aktivuje, když RuntimeHelpers.PrepareConstrainedRegions volání metody bezprostředně předchází try příkazu obslužné rutiny výjimky. Toto omezení je na úrovni jazyka MSIL, takže je možné mít mezi voláním a trykomentářem negenerující zdroj kódu.
Příznaky
Oblast omezeného spuštění (CER), která se nikdy nechová jako taková, ale jako jednoduchý blok zpracování výjimek (finally nebo catch). V důsledku toho se oblast nespustí v případě stavu nedostatku paměti nebo přerušení vlákna.
Příčina
Vzor přípravy pro CER není správně dodržen. Jedná se o chybovou událost. Volání PrepareConstrainedRegions metody použité k označení obslužných rutin výjimek jako zavedení CER v jejich//catchfault/finallyfilter blocích musí být použito bezprostředně před příkazem.try
Rozlišení
Ujistěte se, že se volání PrepareConstrainedRegions stane bezprostředně před příkazem try .
Vliv na modul runtime
Tento mdA nemá žádný vliv na CLR.
Výstup
MDA zobrazí název metody volání PrepareConstrainedRegions metody, posun MSIL a zprávu označující volání bezprostředně před začátek bloku try.
Konfigurace
<mdaConfig>
<assistants>
<illegalPrepareConstrainedRegion/>
</assistants>
</mdaConfig>
Example
Následující příklad kódu ukazuje vzor, který způsobí aktivaci MDA.
void MethodWithInvalidPCR()
{
RuntimeHelpers.PrepareConstrainedRegions();
Object o = new Object();
try
{
…
}
finally
{
…
}
}