0

私は奇妙な例外に直面しています: Google はそれについて何も見つけることができません (これは非常にまれです)。

コード:

new Query<TElement>(/* ... arguments ...*/);

例外はある

System.TypeLoadException

収集可能な型 'L.Caching.Query`1[<>transientClass1]' には、スレッドまたはコンテキストの静的メンバーがない場合があります。

私はついにその問題を解決しましたが、これについて少しグーグルに伝える価値があります! (この質問にお答えします)

物事を文脈に入れましょう:

  • ランタイムでコンパイルされたラムダから例外をスローした「新しい」を呼び出しています。
  • TElement の代わりとなるクラス<>transientClass1は、動的に生成されたクラス (Reflection.Emit を使用) です。まったく攻撃的ではありません。これは、匿名型を記述するときにコンパイラが生成するものと同等です。new{a=thing, b=otherThing}
  • この「匿名」クラスは、アプリケーションの他の多くの部分でうまく機能します (間違った IL 放出について考えないでください)。
  • Query<T>は単なる別のジェネリック クラスです。

その例外の原因は何ですか?

4

1 に答える 1