Iは、低レベルのプラットフォーム特定の操作を行うためのPInvokeを使用して、ウェブ上の例をたくさん見てきたが、それらはすべて同じ方法を毎回プロトタイプ基本的に使用します。次に、Microsoft Reference Sourceを見てみると、各アセンブリはアセンブリに必要なすべてのPInvoke関数を定義し、常にそのクラスを内部としてマークします。私の質問は「なぜ?」です。PInvokeのライブラリ
なぜ、我々はできるだけ多くのコードを再利用しようとしている世界では、我々はそれで必要なすべてのプロジェクトのためのCreateFileのための署名を書き直す必要がありますか?いくつかの標準化されたWinAPIライブラリを作成する際の問題は何ですか?私はいくつかの問題があると仮定します。なぜなら、ほとんどの場合、それは行われていないか、プロジェクトがすぐに放棄されたからです。内部のマーキング
おそらく彼らは少数の場所で各apiを使用するだけであるが、多数の異なるメソッドをピンボケしている可能性が高いためです。そして、createfileのための標準的なラッパーがあります、それはsystem.io.file.createです、win32 apisを複製することは、一般的なapisには一般的に有用ではありません。そして、それらはfile.createの実装であるため、ここでは使用しません。 – user1937198
公開されている場合は、文書化する必要があります。インポートされた各関数には、複数の異なる種類のピンボケが含まれている可能性があります。彼らが出版されたら、彼らは変更することができませんでした。 –
コード解析ツールで内部的に使用することが求められています。今日はFxCopとして知られています。 https://msdn.microsoft.com/en-us/library/ms182161.aspx安全上の懸念を超える理由がない限り、ピンボケ宣言については、たぶん*非常に便利です。 –