C# MEF导出中的ExpandoObject

C# MEF导出中的ExpandoObject,c#,dynamic,mvvm,mef,C#,Dynamic,Mvvm,Mef,编辑:ExpandoObject适用于MEF。我只是有一个语法错误。我真傻 我目前正在使用ExpandoObjects为我的ViewModels动态创建DelegateCommand private dynamic _commands = new ExpandoObject(); public dynamic Commands { get { return _commands; } } private void initializeCommands()

编辑:
ExpandoObject
适用于MEF。我只是有一个语法错误。我真傻


我目前正在使用
ExpandoObjects
为我的
ViewModels
动态创建
DelegateCommand

private dynamic _commands = new ExpandoObject();
public dynamic Commands
{
    get
    {
        return _commands;
    }
}

private void initializeCommands()
{
    _commands.TestSql(new DelegateCommand(() => testSqlConnection()));
}
此命令用于我的
视图

<Button Content="Test Connection" Command={Binding Commands.TestSql}/>

我现在正在更新代码以使用MEF,它对大多数模块都非常有效。但是,在编写此
ViewModel
时,我会遇到以下异常:

这篇作文只产生了一个作文错误。根本原因是 下文提供。查看的CompositionException.Errors属性 更详细的信息

1) “System.Dynamic.ExpandooObject”不包含的定义 “TestSql”

此错误是有意义的,因为
ExpandoObject
没有具有此名称的属性。它应该是动态创建的。是否有人在MEF中处理过
ExpandoObjects
?如果必须的话,我总是可以摆脱ExpandoObject,但我想知道是否有一个简单的解决方法可以让这种情况正常工作。

您尝试过这个吗?:

private void initializeCommands()
{
    _commands.TestSql = new DelegateCommand( () => testSqlConnection());
}
你试过这个吗

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

哇!你是对的。因为天气很好,我甚至没注意到。在我的代码中的所有其他地方,我都是这样做的。谢谢哇!你是对的。因为天气很好,我甚至没注意到。在我的代码中的所有其他地方,我都是这样做的。谢谢