2010-02-17 13 views
8

Dove sono descritte le restrizioni di riflessione ben note per i tipi di Silverlight?Limitazioni di riflessione in Silverlight

Ad esempio: se si tenta di impostare il valore della proprietà privata o protetta con il metodo PropertyInfo.SetValue, viene visualizzata un'eccezione MethodAccessException.

Perché queste restrizioni?

risposta

11

Per motivi di sicurezza, la riflessione in Silverlight è limitata a quanto disponibile in fase di compilazione. Principalmente questo significa che puoi accedere solo ai membri pubblici.

Ecco cosa dice a questo proposito MS: http://msdn.microsoft.com/en-us/library/stfy7tfc(VS.95).aspx

La ragione di questo è che i meccanismi interni di Silverlight sono per lo più privati ​​o interna al gruppo Silverlight principale. Se potessi chiamare quelle funzioni private senza alcun controllo dei parametri, potrei essere in grado di scrivere un'app Silverlight che legge i tuoi file privati ​​o qualcosa del genere.

+1

Bene, ma dove descritto quel comportamento? Quali "scopi di sicurezza" sai? – Andir

+0

In realtà non capisco questo ragionamento, considerando che è possibile creare espressioni che accedono ai membri privati. –

+0

@ Mike: hai un esempio? – Gabe