ライブラリを作成するとき、同じクラスの他のメソッドではなく、リフレクションを通じて別のライブラリによって呼び出されたときに、プライベートメソッドが期待どおりに動作することを確認する必要がありますか?
たとえば、プライベートメソッドが以下をprivate DoSomething(int number)
期待している場合:
number
は、ゼロ以外の正の整数であり、次のとおりです。- プライベート変数
string abc
はnullではなく、空の文字列でもありません。
そして、完全に、これらの2つの条件が一致しない場合、い失敗します。クラスのすべてのメソッドが常に空でない値を割り当てて、をabc
呼び出す前にこれらの失敗を処理する必要がありDoSomething
、これに正の非ゼロ整数を渡します方法?
言い換えると、リフレクションによる安全でない呼び出しから保護されていないコードは低品質コードと見なすことができますか、それともリフレクションを使用して呼び出しが何も中断しないことを保証する呼び出し元に属しますか?
注:私の質問は、ライブラリの標準セットのみを対象としています。これは、高度に安全でなければならないコード(つまり、予期しない動作やクラッシュをさせるためにリフレクションを使用することに興味がある場合)をカバーしません。
¹他の開発者がこのメソッドを壊さないようにするための十分な単体テストがあるため、クラスが正しく文書化されているため