«Не реализует IControllerFactory.CreateController» в Visual Studio 2010 - PullRequest
3 голосов
/ 10 апреля 2010

При компиляции этого кода:

public class WindsorControllerFactory : IControllerFactory
{
    private readonly WindsorContainer _container;

    public WindsorControllerFactory(WindsorContainer container)
    {
        _container = container;
    }

    public IController CreateController(RequestContext requestContext,
                                        string controllerName)
    {
        return (IController)_container.Resolve(controllerName);
    }

    public void ReleaseController(IController controller)
    {
        _container.Release(controller);
    }
}

Я получаю эту ошибку:

'WindsorControllerFactory' не реализовать интерфейсный элемент «System.Web.Mvc.IControllerFactory.CreateController (System.Web.Routing.RequestContext, строка) '

Ну, это, очевидно, реализует этот член. Кто-нибудь сталкивался с этой проблемой?

Я воспроизвел это на RTM, открыл тикет с Microsoft .

Ответы [ 4 ]

3 голосов
/ 14 апреля 2010

Ошибка исчезла после того, как я добавил ссылку на System.Web.Routing 4.0.0.0. До этого на него косвенно ссылались на версию 3.5.0.0 (через System.Web.Mvc, Версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35)

Таким образом, у меня есть следующие ссылки:
System.Web.Mvc 2.0.0.0 (v2.0.50727)
System.Web.Routing 4.0.0.0 (v4.0.30128)

0 голосов
/ 21 июня 2011

Включить ссылку на System.Web (v4.0.30319).

0 голосов
/ 13 апреля 2010

Существует также класс RequestContext в пространстве имен System.ServiceModel.Channels; входит в сборку System.ServiceModel.dll.

Наведите указатель мыши на тип аргумента RequestContext вашего метода и убедитесь, что он указывает на правильный.

Подробнее здесь

0 голосов
/ 10 апреля 2010

у вас может быть две конфликтующие версии System.Web.routing или что-то в этом роде.

...