Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Assembly.Load (String, Evidence)

 

Data di pubblicazione: ottobre 2016

obsoleteCodeEntityM:System.Reflection.Assembly.Load(System.String) Nota: Questa API è ora obsoleta.

Carica un assembly in base al nome visualizzato nel dominio del chiamante, usando l'evidenza fornita.

Spazio dei nomi:   System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

[ObsoleteAttribute("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static Assembly Load(
	string assemblyString,
	Evidence assemblySecurity
)

Parametri

assemblyString
Type: System.String

Nome visualizzato dell'assembly.

assemblySecurity
Type: System.Security.Policy.Evidence

Evidenza per il caricamento dell'assembly.

Valore restituito

Type: System.Reflection.Assembly

Assembly caricato.

Exception Condition
ArgumentNullException

assemblyString è null.

FileNotFoundException

assemblyString non trovata.

BadImageFormatException

assemblyString non è un assembly valido.

-oppure-

Attualmente è caricata la versione 2.0 o successiva di Common Language Runtime e l'oggetto assemblyString è stato compilato con una versione successiva.

FileLoadException

Non è stato possibile caricare un file trovato.

-oppure-

Un assembly o un modulo è stato caricato due volte con due evidenze diverse.

FileLoadException viene generata se assemblyString Specifica il nome completo dell'assembly e al primo assembly che corrisponde al nome semplice ha una diversa versione, impostazioni cultura o token di chiave pubblica. Il caricatore non continua la ricerca degli altri assembly che corrispondono al nome semplice.

Se sussistano o meno le autorizzazioni per l'utilizzo di un assembly lo si evince dalle evidenze. Le regole per l'assembly e l'evidenza di sicurezza unione sono come segue:

  • Quando si utilizza un Load metodo senza alcun Evidence parametro, l'assembly viene caricato con l'evidenza fornita dal caricamento.

  • Quando si utilizza un Load metodo con un Evidence parametro evidenze vengono uniti. Evidenze fornite come argomento per il Load metodo le sostituiscono quelle fornite dal caricamento.

  • Quando si utilizza un Load overload del metodo con un Byte[] parametro per caricare un'immagine common object file formato COFF (), la prova viene ereditata dall'assembly chiamante. Si applica a .NET Framework versione 1.1 Service Pack 1 (SP1) e versioni successive.

    System_CAPS_noteNota

    In .NET Framework versione 1.0 e nella versione 1.1 senza SP1, quando si utilizza un Load overload del metodo con un Byte[] parametro per caricare un'immagine COFF, l'evidenza viene combinato. Zone, Url e Site vengono ereditate dall'assembly chiamante e Hash e StrongName provengono dall'assembly COFF.

  • Quando si utilizza un Load metodo con un Byte[] parametro e Evidence per caricare un'immagine COFF, viene utilizzato solo l'evidenza fornita. L'evidenza dell'assembly chiamante e quella dell'immagine COFF viene ignorati.

La reflection su file eseguibili C++ può generare un BadImageFormatException. Ciò è probabilmente causato dal compilatore C++ degli indirizzi di rilocazione di rimozione o la .reloc sezione dal file eseguibile. Per mantenere il .reloc indirizzo per il file eseguibile C++, specificare /fixed:no quando si crea un collegamento.

Se si chiama questo metodo più volte nello stesso assembly ma con una prova diversa specificata, common language runtime non genera un FileLoadException perché non è possibile determinare l'uguaglianza e l'integrità delle diverse specifiche di prova. L'evidenza che innanzitutto ha esito positivo è l'evidenza utilizzata.

In .NET Framework versione 2.0, architettura del processore viene aggiunto all'identità dell'assembly e può essere specificato come parte di stringhe di nomi di assembly. Ad esempio, "ProcessorArchitecture = msil". Tuttavia, il metodo consigliato per specificare un nome di assembly consiste nel creare un AssemblyName dell'oggetto e passarlo a un overload appropriato del Load metodo. Vedere AssemblyName.ProcessorArchitecture.

SecurityPermission

to load an assembly with evidence. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.ControlEvidence

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: