MEF导出中的ExpandoObject

时间:2012-09-24 20:08:55

标签: c# dynamic mvvm mef

编辑: ExpandoObject可以正常使用MEF。我刚刚遇到语法错误。傻我。


我目前正在使用ExpandoObjectsDelegateCommand动态创建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没有具有此名称的属性。它应该动态创建。有人在MEF中处理过ExpandoObjects吗?如果必须,我总是可以摆脱ExpandoObject,但我想知道是否有一个简单的解决办法可以让这种情况发挥作用。

1 个答案:

答案 0 :(得分:1)

你试过这个吗?:

private void initializeCommands()
{
    _commands.TestSql = new DelegateCommand( () => testSqlConnection());
}