Ao criar uma biblioteca, devo garantir que os métodos privados funcionem conforme o esperado quando chamados não por outros métodos da mesma classe, mas por outra biblioteca através da reflexão ?
Por exemplo, se um método privado private DoSomething(int number)
espera que:
number
é um número inteiro positivo diferente de zero e:- uma variável privada
string abc
não é nula e não é uma cadeia vazia,
e completamente, feio falha se estas duas condições não são correspondidos, devo lidar com essas falhas, mesmo que eu sei que todos os métodos na classe irá always¹ atribuir um valor não-vazio para abc
antes de chamar DoSomething
, e passar por um diferente de zero inteiro positivo a este método?
Em outras palavras, o código que não está protegido contra chamadas não seguras por meio da reflexão pode ser considerado como código de baixa qualidade ou pertence ao chamador que usa a reflexão para garantir que a chamada não interrompa nada?
Nota: minha pergunta cobre apenas um conjunto padrão de bibliotecas. Isso não cobre o código que deve ser altamente seguro (ou seja, quando alguém pode estar interessado usando a reflexão para fazê-la se comportar inesperadamente ou travar).
¹ Como a classe está documentada corretamente, porque há testes de unidade suficientes para garantir que qualquer outro desenvolvedor não quebre esse método, etc.