https://msdn.microsoft.com/en-us/library/ms182161.aspxLa classe NativeMethods è gestita appositamente in .NET?
Le tre classi descritte in questa pagina sono gestite appositamente in .NET Framework? (NativeMethods, SafeNativeMethods e UnsafeNativeMethods)
Il motivo che sto chiedendo è che mi chiedo se sia giusto creare categorie di classi NativeMethods. Ad esempio:
ComNativeMethods
User32NativeMethods
OleStorageNativeMethods
La mia interpretazione di tale collegamento è che si tratta di una convenzione, non è che il il runtime fa qualcosa di diverso. Lo sviluppatore è responsabile di inserire gli attributi di sicurezza appropriati nelle classi. Ad esempio: "NativeMethods: questa classe non sopprime i percorsi di stack per il permesso di codice non gestito." System.Security.SuppressUnmanagedCodeSecurityAttribute non deve essere applicato a questa classe. "" –
Rilevante anche: "Queste classi assomigliano alla classe NativeMethods, tuttavia, sono contrassegnato utilizzando uno speciale attributo denominato SuppressUnmanagedCodeSecurityAttribute. Quando questo attributo viene applicato, il runtime non esegue una passeggiata completa dello stack per assicurarsi che tutti i chiamanti dispongano dell'autorizzazione UnmanagedCode. Il runtime normalmente controlla questa autorizzazione all'avvio. ... Tuttavia, dovresti usare questo attributo con molta cura e può avere serie implicazioni sulla sicurezza se viene implementato in modo errato .. " –
Grazie, sono corretto. Ho aggiornato la mia risposta. –