次のシグネチャを使用して、メソッド(関数)をExpandoObjectに割り当てようとしています。
public List<string> CreateList(string input1, out bool processingStatus)
{
//method code...
}
私はコンパイルされない以下のコードのようなことをしようとしました:
dynamic runtimeListMaker = new ExpandoObject();
runtimeListMaker.CreateList =
new Func<string, bool, List<string>>(
(input1, out processingStatus) =>
{
var newList = new List<string>();
//processing code...
processingStatus = true;
return newList;
});
残念ながら、CreateList署名を変更することはできません。下位互換性が失われるため、書き直すことはできません。デリゲートを使用してこれを回避しようとしましたが、実行時に「非デリゲートタイプを呼び出せません」という例外が発生しました。これは、デリゲートを正しく割り当てていないことを意味していると思います。構文を正しくするためのサポートが必要です(デリゲートの例もOKです)。ありがとう!!