2010-02-17 16 views
8

¿Dónde se describen las restricciones de reflexión bien conocidas para los tipos de Silverlight?Restricciones de reflexión en Silverlight

Por ejemplo: si intento establecer el valor de la propiedad privada o protegida con el método PropertyInfo.SetValue obtengo una excepción MethodAccessException.

¿Por qué estas restricciones?

Respuesta

11

Por razones de seguridad, la reflexión en Silverlight se limita a lo que está disponible en tiempo de compilación. En general, esto significa que solo puede acceder a miembros públicos.

Aquí es lo que dice al respecto MS: http://msdn.microsoft.com/en-us/library/stfy7tfc(VS.95).aspx

La razón de esto es que las partes internas de Silverlight son en su mayoría privada o interna para el montaje Silverlight principal. Si pudiera llamar a esas funciones privadas sin ninguna verificación de parámetros, podría escribir una aplicación de Silverlight que lea sus archivos privados o algo así.

+1

Bueno, pero donde se describe que el comportamiento? ¿Qué "propósitos de seguridad" conoces? – Andir

+0

Realmente no entiendo este razonamiento, teniendo en cuenta que puede compilar expresiones que acceden a miembros privados. –

+0

@Mike: ¿Tiene un ejemplo? – Gabe