Scrittura di codice type-safe verificabile

Il codice type-safe è codice che accede ai tipi solo con modalità ben definite e consentite. Dato un riferimento a un oggetto valido, ad esempio, il codice type-safe può accedere solo a offset fissi corrispondenti ai membri di campo effettivi. Se tuttavia il codice accede alla memoria a offset arbitrari esterni all'intervallo di memoria appartenente ai campi dell'oggetto esposti in modo pubblico, non sarà type-safe.

Durante la compilazione JIT viene eseguito un processo denominato verifica, in base al quale il codice viene esaminato, rilevando se si tratti o meno di codice type-safe. Il codice che a seguito della verifica è riconosciuto type-safe viene definito codice type-safe verificabile. Esiste, infatti, codice che pur essendo type-safe non è type-safe verificabile, a causa delle limitazioni del processo di verifica o del compilatore. Non tutti i linguaggi sono type-safe e alcuni compilatori di linguaggio, quali Microsoft Visual C++, non sono in grado di generare codice gestito type-safe verificabile. Per stabilire se il compilatore di linguaggio utilizzato è in grado di generare codice type-safe verificabile, consultare la documentazione del compilatore. Se il compilatore di linguaggio impiegato genera codice type-safe verificabile solo se si evitano determinati costrutti di linguaggio, è possibile utilizzare lo strumento Strumento PEVerify (Peverify.exe) di NET Framework SDK per stabilire se il codice è type-safe verificabile.

È tuttavia possibile tentare l'esecuzione di codice non type-safe verificabile, se i criteri di protezione consentono al codice di evitare la verifica. Poiché la condizione type-safe è tuttavia una componente essenziale del meccanismo di isolamento degli assembly nell'ambiente di esecuzione, non è possibile applicare la protezione in maniera affidabile se il codice viola le regole type-safe. In base all'impostazione predefinita, l'esecuzione del codice non type-safe è consentita solo se il codice ha origine nel computer locale. È quindi necessario che il codice mobile sia type-safe.

Vedere anche

Protezione dall'accesso di codice | Nozioni fondamentali sulla protezione dall'accesso di codice | Compilazione di MSIL in codice nativo | PEVerify (Peverify.exe)