No suitable constructor found

If you are working with CodeDress and you get this error "No suitable constructor found", check the following:

  1. In the GAC, check that you only have the current Eco.Interfaces - not old copies of the assembly. Ensure that the GACed version is the version in MDrivenServer/bin: C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Eco.Interfaces
  2. Also, check the CodeDress assemblies (\ModelCodeAssemblies) so that you do not have any Eco.* assemblies there. The linker will wrongfully mix in these instead of the ones in your running application (Turnkey or MDrivenServer).

When the linker tries to resolve the reference to Eco.Interfaces, it may end up with the wrong one and nothing will match up correctly. You will have no access to the correct constructor.

This issue does not normally arise on the server since you probably have not installed MDrivenFramework there. The problem arises due to a fight on what version to use between MDrivenFramework (that must have GAC assemblies to allow for VisualStudio to work) and MDrivenServer which does not have GAC assemblies.

In Visual Studio, doing a "Clean" on your solution and rebuilding usually helps.

The Play button in MDriven Designer gives an exception to "No suitable constructor found"

When you hit play, the system tries to start. As part of the system starts, we look for CodeDress assemblies. If your model is saved in a location where the CodeDress logic will need to scan irrelevant assemblies, it may be the reason for the "No suitable constructor found" exception.

Try to move your model to a directory of its own where CodeDress logic will not find other irrelevant file assemblies.

Report From Reality

{Update: 2021-10-12) The description of eco.interfaces.dll has changed from "ECO ..." to "MDriven ..." as we implemented the Nugets for .net5. This counts as a big change. I got the error above when the MDrivenServer had one version and CodeDress was compiled with another.

This page was edited 32 days ago on 11/28/2024. What links here