1

gcc では、 , を指定する-Wl--wrap=function_name、「function_name」へのすべての呼び出しが「__wrap_function_name」に置き換えられ、ユーザーが「__wrap_function_name」の定義を提供することが期待されます。元のメソッドの名前を「__real_function_name」に変更します。

これは、ソース コード内の任意の関数をフックするのに役立ちます。もちろん、必要に応じて実際のメソッドを呼び出すこともできます。

C#コンパイラ/リンカーに同様のオプションはありますか? マネージ dll の一部の関数をオーバーライドしようとしています。そのdllのソースコードがあります。私のメソッドは内部的で非仮想的であるため、利用可能なモッキングフレームワークを使用できません。

4

1 に答える 1

0

いいえ、C# 全般や Microsoft 実装全般にそのような機能があることは知りません。

すでにソースコードを入手している場合、適切に変更できませんか? それよりも拡張性を高めたいと思われるので、拡張性フックを自分で追加してください。

于 2012-12-24T16:55:03.747 に答える