Dela via


memberInfoCacheCreation MDA

Kommentar

Den här artikeln är specifik för .NET Framework. Det gäller inte för nyare implementeringar av .NET, inklusive .NET 6 och senare versioner.

Den memberInfoCacheCreation hanterade felsökningsassistenten (MDA) aktiveras när en MemberInfo cache skapas. Detta är en stark indikation på ett program som använder resursdyra reflektionsfunktioner.

Symtom

Ett programs arbetsuppsättning ökar eftersom programmet använder resursdyr reflektion.

Orsak

Reflektionsåtgärder som involverar MemberInfo objekt anses vara resursdyra eftersom de måste läsa metadata som lagras på kalla sidor och i allmänhet anger de att programmet använder någon typ av sent bundet scenario.

Åtgärd

Du kan avgöra var reflektion används i ditt program genom att aktivera denna MDA och sedan köra koden i ett felsökningsprogram eller koppla med ett felsökningsprogram när MDA aktiveras. Under ett felsökningsprogram får du en stackspårning som visar var cachen MemberInfo skapades och därifrån kan du avgöra var programmet använder reflektion.

Resolutionen är beroende av kodens mål. Denna MDA varnar dig om att ditt program har ett sent bundet scenario. Du kanske vill ta reda på om du kan ersätta ett scenario med tidig bindning eller överväga prestanda för det sena scenariot.

Effekt på körningen

Denna MDA aktiveras för varje MemberInfo cache som skapas. Prestandapåverkan är försumbar.

Output

MDA matar ut ett meddelande som anger att cachen MemberInfo skapades. Använd ett felsökningsprogram för att hämta en stackspårning som visar var programmet använder reflektion.

Konfiguration

<mdaConfig>
  <assistants>
    <memberInfoCacheCreation/>
  </assistants>
</mdaConfig>

Exempel

Den här exempelkoden aktiverar memberInfoCacheCreation MDA.

using System;

public class Exe
{
    public static void Main()
    {
        typeof(object).GetMethods();
    }
}

Se även