illegalPrepareConstrainedRegion MDA

Yönetilen illegalPrepareConstrainedRegion hata ayıklama yardımcısı (MDA), bir RuntimeHelpers.PrepareConstrainedRegions yöntem çağrısı özel durum işleyicisinin deyiminden try hemen önce olmadığında etkinleştirilir. Bu kısıtlama MSIL düzeyinde olduğundan, çağrısı ile tryarasında açıklamalar gibi kod oluşturmayan bir kaynak olması izin verilir.

Belirtiler

Hiçbir zaman böyle değil, basit bir özel durum işleme bloğu ( veya catch) olarak kabul edilen kısıtlanmış yürütme bölgesi (finallyCER). Sonuç olarak, bellek yetersiz koşulu veya iş parçacığı iptali durumunda bölge çalışmaz.

Nedeni

CER için hazırlık deseni doğru izlenmiyor. Bu bir hata olayıdır. PrepareConstrainedRegions Özel durum işleyicilerini bloklarına//catchfault/finallyfilter cer giriş olarak işaretlemek için kullanılan yöntem çağrısı deyiminden try hemen önce kullanılmalıdır.

Çözüm

çağrısının PrepareConstrainedRegions deyiminden hemen önce gerçekleştiğinden try emin olun.

Çalışma Zamanı Üzerindeki Etkisi

Bu MDA'nın CLR üzerinde hiçbir etkisi yoktur.

Çıktı

MDA, yöntemini çağıran PrepareConstrainedRegions yöntemin adını, MSIL uzaklığını ve çağrının deneme bloğunun başlangıcından hemen önce olmadığını belirten bir ileti görüntüler.

Yapılandırma

<mdaConfig>  
  <assistants>  
    <illegalPrepareConstrainedRegion/>  
  </assistants>  
</mdaConfig>  

Örnek

Aşağıdaki kod örneği, bu MDA'nın etkinleştirilmesine neden olan deseni gösterir.

void MethodWithInvalidPCR()  
{  
    RuntimeHelpers.PrepareConstrainedRegions();  
    Object o = new Object();  
    try  
    {  
        …  
    }  
    finally  
    {  
        …  
    }  
}  

Ayrıca bkz.