私はすべてのコンポーネントを反復処理しようとしています。ISupportsOpenを実装する人はプロジェクトを開くことができます。問題は、匿名メソッドが呼び出されたときに、コンポーネント変数が常に同じ要素になることです(IEnumerableの外部スコープから取得されたものとして)
foreach (ISupportsOpen component in something.Site.Container.Components.OfType<ISupportsOpen>())
{
MyClass m = new MyClass();
m.Called += new EventHandler(delegate(object sender, EventArgs e)
{
if (component.CanOpenProject(..)) component.OpenProject(..);
});
itemsList.Add(m);
}
どのように解決すればよいですか?