2013-07-15 22 views
2

我希望有人可以幫我解決一個奇怪的問題。開發一個WPF .NET Framework 4.0應用程序,接收消息:在類型上找不到匹配的構造函數。您可以使用參數或FactoryMethod指令來構造類型

在類型上找不到匹配的構造函數。嘗試使用以下代碼時,您可以使用Arguments或FactoryMethod指令構造類型。

UserControl:

<Grid>      
    <GroupBox Header="Diagram"> 
     <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
      <designer:DesignerCanvas Focusable="true" x:Name="MyDesigner" 
       Background="{StaticResource WindowBackgroundBrush}" Margin="10" 
       FocusVisualStyle="{x:Null}" 
       ContextMenu="{StaticResource DesignerCanvasContextMenu}" /> 
     </ScrollViewer> 
    </GroupBox> 
</Grid> 

Class:

/// <summary> 
/// The designer canvas. 
/// </summary> 
public partial class DesignerCanvas : Canvas 
{ 
    public DesignerCanvas() 
    { 
     .... 
    } 
} 

至於我可以看到有沒有出現是什麼錯誤代碼。

感謝, 約翰

更新:

原來這是屏蔽底層異常。我在DesignerCanvas中的構造函數中刪除了任何東西,它工作。我然後重新添加在一個單獨的方法設置命令綁定和接收:未找到方法::

system.missingMethodException而空隙System.Windows.Input.CommandBinding..ctor(System.Windows.Input.ICommand, System.Windows.Input.ExecutedRoutedEventHandler)

該構造函數包括嘗試設置一些命令綁定。例如

public void SetupCommandDefaults() 
    { 
     this.CommandBindings.Add(new CommandBinding(ApplicationCommands.New, this.New_Executed)); 
    } 

我正在卸載並重新安裝.NET Framework 4.0,希望這能解決問題。

+1

是否有任何進一步的信息去與該錯誤,可能詳細說明類型?我似乎能夠毫無錯誤地使用上述(包括一些模擬資源)。 – Chris

+0

目前還沒有。我試圖鑽入DesignerCanvas並找出類型導致異常的原因。 – Cynicszm

+0

這很奇怪,你看看'CommandBinding'元數據來驗證構造函數確實缺失嗎? = O – Chris

回答

0

在重新安裝.NET Framework 4之後,應用各種KB修補程序直至運行時4.0.3(包括運行時),結果令人頭疼。該問題是由ILMerge msbuild步驟引起的。

構建過程包括一個msbuild任務後生成合並主要的可執行文件與一些dll的。

我刪除了這個ILMerge步驟,錯誤消失了。

不知道爲什麼會出現在這個環境中,而不是我們的任何測試機器上,但現在它的工作。

相關問題