私は次のようなことをしようとしています:
public DataObjectBase GetCurrentSettings<T>(string path) where T : DataObjectBase
{
if (string.IsNullOrEmpty(path))
{
throw new ArgumentException("Path cannot be empty.");
}
return _currentSettings[T].Invoke(path);
}
しかし、それはコンパイルされません。どうすればこれを達成できますか?基本的に、MEF と importmany 属性を使用して DataObjects を操作できるクラスの IEnumerable をインポートします。次に、コンストラクターで各操作をキー付き辞書に変換します。これにより、呼び出しごとにクエリを実行する必要がなくなります。
_currentSettings はDictionary<Type, Func<string, DataObject>>