2012-09-24 59 views
1

編輯:ExpandoObject可以正常使用MEF。我剛剛有一個語法錯誤。傻我。MEF中的ExpandoObject導出


我目前使用ExpandoObjects爲我ViewModels動態創建DelegateCommand的。

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

您是否嘗試過這個?:

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

哇..你是對的。既然編譯好了,我甚至沒有注意到。在我的代碼中的所有其他地方,我都這麼做了。謝謝! – burnttoast11