Tengo un proyecto para el que uso StructureMap para la inyección de dependencias. El proyecto compila bien como un proyecto MVC pero después de todo lo que se mueve a un proyecto MVC2 ahora estoy recibiendo el siguiente error:ASP.NET MVC 2 Vista previa 1: compilación de problemas StructureMap Controller Factory
Test.Web.Controllers.StructureMapControllerFactory.GetControllerInstance(System.Type)': no suitable method found to override C:\Test\Web\Controllers\StructureMapControllerFactory.cs 11 40 Test.Web
Aquí es mi StructureMapControllerFactory:
using System;
using System.Web.Mvc;
using StructureMap;
namespace Test.Web.Controllers
{
public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(Type controllerType)**
{
IController result = null;
try
{
if (controllerType == null) return base.GetControllerInstance(controllerType);
result = ObjectFactory.GetInstance(controllerType) as Controller;
}
catch (StructureMapException)
{
System.Diagnostics.Debug.WriteLine(ObjectFactory.WhatDoIHave());
throw;
}
return result;
}
}
}
He encontrado un puesto semi relacionado con este problema, pero no ofreció ninguna idea sobre cómo resolver mi problema: MVC 2 preview 1 - methods with parameters in the controller fail to load
Obviamente, me falta un cambio de la progresión 1.0-2.0, pero no estoy seguro de qué cambió. Cualquier ayuda es siempre apreciada.
Muchas gracias Craig. Me pregunto por qué esto no se refleja en el navegador de objetos VS cuando se explora el espacio de nombres System.Web.MVC [2.0.0.0]. –
No estoy seguro, pero puede escribir ov [barra espaciadora] en el editor de código (es decir, empiece a escribir "anular" donde normalmente declararía un nuevo método) para obtener la lista de métodos que se pueden cargar para la clase actual con sus firmas. –