编辑: ExpandoObject适用于 MEF。我只是有一个语法错误。傻我。
我目前正在使用ExpandoObjects为DelegateCommand我的ViewModels.
private dynamic _commands = new ExpandoObject();
public dynamic Commands
{
get
{
return _commands;
}
}
private void initializeCommands()
{
_commands.TestSql(new DelegateCommand(() => testSqlConnection()));
}
这个命令在我的View.
<Button Content="Test Connection" Command={Binding Commands.TestSql}/>
我现在正在更新代码以使用 MEF,它适用于大多数模块。但是,当它ViewModel被组合时,我得到以下异常:
合成产生了一个单一的合成错误。下面提供了根本原因。查看 CompositionException.Errors 属性以获取更多详细信息。
1)“System.Dynamic.ExpandoObject”不包含“TestSql”的定义
此错误是有道理的,因为ExpandoObject没有具有此名称的属性。它应该是动态创建的。有人ExpandoObjects在MEF处理过吗?如果必须,我总是可以摆脱这种ExpandoObject情况,但我想知道是否有一个简单的解决方法可以让这种情况发生。