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());
}
哇!你是对的。因为天气很好,我甚至没注意到。在我的代码中的所有其他地方,我都是这样做的。谢谢哇!你是对的。因为天气很好,我甚至没注意到。在我的代码中的所有其他地方,我都是这样做的。谢谢