AOPの種類のレイヤを実行しています。ジェネリックコレクション(IEnumerableなど)のイテレータブロックを返したいとします。しかし、タイプTは動的に発見される。私はその型を見つけることができ、それを "型"変数としてローカルに持っていますが、それを越えて、その動的に発見された型のイテレータブロックを返すにはどうしたらいいですか?私が欲しいもの動的に型指定されたC#イテレータブロックを作成するにはどうすればよいですか?
は、この(私は、従来のC#でそれを表現することができます近くなどのような)のようなものです:
public IEnumerator<runtimeDiscoveredType> EntryIteratorBlock(Type desiredElementType)
{
// One can assume that desireElementType is the same as (or convertible to) runtimeDiscoveredType
TypeConverter tc = new TypeConverter()
var actualItem = ....; // some code goes here to pick up the actual item from
... // some collection.
if (ChooseThisItem(actualItem))
yield return tc.ConvertTo(actualItem, desiredElementType);
else
yield break;
}
私は動的コレクションを歩くことができるように、そして、EntryIteratorBlockを返すようにしたいと思います。 (コレクションの要素が読み込みに時間がかかるため、遅延読み込みを行いたい)
私はピーターに同意します。より具体的な例は、あなたがやろうとしていることを書いているかどうかを簡単に伝えることができます。 – Gabe