public void ShowOpenFileDialog(string defaultExt, string filter, Action<DialogResult, string> callback)
{
if (callback == null)
throw new ArgumentNullException("callback");
using (var dlg = new OpenFileDialog())
{
dlg.DefaultExt = defaultExt;
dlg.Filter = filter;
var result = dlg.ShowDialog();
try
{
callback(result, dlg.FileName);
}
catch (Exception ex)
{
_log.Error("Error invoking callback.", ex);
}
}
}