WindowsPhone7.5クラスライブラリをWPユニットテストフレームワークにロードするのに深刻な問題が発生しています。アセンブリでGetExportedTypes()を内部的に呼び出し、詳細を含まないReflectionTypeLoadExceptionをスローします。そのメッセージは「ReflectionTypeLoadException」であり、そのLoaderExceptionsはnullです(「式を評価できませんでした」)。アセンブリはサードパーティのアセンブリを使用していません。別のWP7アプリを作成して同じことをすると、同じ結果が得られます。私は非常に経験豊富なReflectionユーザーですが、詳細なエラーがないため、調査は完全に停止しました。完全を期すために、これはWindowsPhoneバージョンのFluentAssertionsです。
2 に答える
Types
例外の配列はどうですか? 値が含まれていますか? もしそうなら、sも含まれていますnull
か?その場合、ロードに失敗したクラスを見つけることができます。アセンブリ内のすべてのクラスがわかり、どのクラスが正しくロードされたかがわかります。欠落しているものは、ロードできなかったクラスです。たぶん、この情報はいくつかの手がかりを与えるでしょう。
この回答は、ドキュメント、特に次のビットに基づいています。
LoaderExceptions
物件備考より:
LoaderExceptions プロパティは、Types 配列に対応する Exception 型の配列を取得します。この配列には、リフレクションがクラスをロードできない場合は常に null 値が含まれます。
そして、Types
プロパティのドキュメントから:
モジュールで定義され、読み込まれたクラスを含む Type 型の配列。この配列には、いくつかの null 値を含めることができます。
見つけました!@GeertvanHorrikは、彼が最近書いたブログ投稿を教えてくれました。ランタイム (!) がサポートしていない共変インターフェイス ( outパラメータを使用) を使用していました。なぜコンパイラがそれから私を保護しないのかは、私にとって大きな謎です (そして大きな失望です)