Al crear una biblioteca, ¿debo asegurarme de que los métodos privados deben funcionar como se espera cuando se los llama no por otros métodos de la misma clase, sino por otra biblioteca a través de la reflexión ?
Por ejemplo, si un método privado private DoSomething(int number)
espera que:
number
es un número entero positivo distinto de cero y:- una variable privada
string abc
no es nula y no es una cadena vacía,
y completamente, feo falla si esas dos condiciones no se corresponden, debo manejar esas fallas, incluso si sé que todos los métodos de la clase se always¹ asignar un valor no vacío a abc
antes de llamar DoSomething
, y pasar un entero positivo distinto de cero a esta ¿método?
En otras palabras, ¿el código que no está protegido contra llamadas inseguras a través de la reflexión puede considerarse como un código de baja calidad , o pertenece a la persona que llama que usa la reflexión para asegurarse de que la llamada no interrumpa nada?
Nota: mi pregunta cubre solo un conjunto estándar de bibliotecas. Esto no cubre el código que debe ser altamente seguro (es decir, cuando alguien puede estar interesado mediante el uso de la reflexión para que se comporte de forma inesperada o se bloquee).
¹ Porque la clase está documentada correctamente, porque hay suficientes pruebas unitarias para asegurarse de que cualquier otro desarrollador no rompa este método, etc.