Edit: ExpandoObject works fine with MEF. I just had a syntax error. Silly me.
I am currently using ExpandoObjects to dynamically create DelegateCommand‘s for my ViewModels.
private dynamic _commands = new ExpandoObject();
public dynamic Commands
{
get
{
return _commands;
}
}
private void initializeCommands()
{
_commands.TestSql(new DelegateCommand(() => testSqlConnection()));
}
This command is used in my View.
<Button Content="Test Connection" Command={Binding Commands.TestSql}/>
I am now updating the code to use MEF and it is working great for most modules. However, when this ViewModel is being composed, I get the following exception:
The composition produced a single composition error. The root cause is
provided below. Review the CompositionException.Errors property for
more detailed information.1) ‘System.Dynamic.ExpandoObject’ does not contain a definition for
‘TestSql’
This error makes sense since ExpandoObject doesn’t have a property with this name. It should be created dynamically. Has anyone dealt with ExpandoObjects in MEF? I could always get rid of the ExpandoObject if I have to, but I was wondering if there is an easy fix that would allow this situation to work.
Have you tried this?: