私は奇妙な例外に直面しています: Google はそれについて何も見つけることができません (これは非常にまれです)。
コード:
new Query<TElement>(/* ... arguments ...*/);
例外はある
System.TypeLoadException
収集可能な型 'L.Caching.Query`1[<>transientClass1]' には、スレッドまたはコンテキストの静的メンバーがない場合があります。
私はついにその問題を解決しましたが、これについて少しグーグルに伝える価値があります! (この質問にお答えします)
物事を文脈に入れましょう:
- ランタイムでコンパイルされたラムダから例外をスローした「新しい」を呼び出しています。
- TElement の代わりとなるクラス
<>transientClass1
は、動的に生成されたクラス (Reflection.Emit を使用) です。まったく攻撃的ではありません。これは、匿名型を記述するときにコンパイラが生成するものと同等です。new{a=thing, b=otherThing}
- この「匿名」クラスは、アプリケーションの他の多くの部分でうまく機能します (間違った IL 放出について考えないでください)。
Query<T>
は単なる別のジェネリック クラスです。
その例外の原因は何ですか?