Нулевой интерфейс в конструкторе

У меня есть приложение ASP.NET MVC, и я использую MEF для импорта своих интерфейсов. Проблема в том, что мой интерфейс IVotesRepository имеет значение null, когда он передается конструктору.

Вот код моего контроллера:

public class VotesController : BaseController
{
    //
    // GET: /Votes/
    IVotesRepository VotesRepository;
    IAccountRepository accountRepository;

    public VotesController(IVotesRepository votesRepo, IAccountRepository accountRepo)
    {
        VotesRepository = votesRepo;
        accountRepository = accountRepo;
    }

А вот интерфейс и сам репозиторий:

public interface IVotesRepository
{
    void SaveVotes(int TeamId, int GameId, int UserId);

    bool CheckIfUserHaveVoted(int UserId, int GameId);
}

[Export(typeof(IVotesRepository))]
public class VotesRepository : IVotesRepository
{
   ...
}

Почему экземпляр IVotesRepository имеет значение null?

РЕДАКТИРОВАТЬ:

Трассировки стека:

Object reference not set to an instance of an object at SocialSport.Controllers.VotesController.SaveVotes(Nullable`1 TeamId, Nullable`1 GameId) in C:\...\Visual Studio 2010\Projects\SocialSport\Implementation\Source\SocialSportWeb\Controllers\VotesController.cs:line 29
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)

person Rene Durazo    schedule 02.12.2012    source источник
comment
Добро пожаловать на сайт. Если вам нужно сделать встроенную подсветку, используйте пару обратных кавычек (`). В противном случае используйте кнопку форматирования кода (пара фигурных скобок в редакторе) для блоков кода, таких как ваши классы и интерфейсы.   -  person Mike Bailey    schedule 02.12.2012
comment
Я не вижу ImportingConstructorAttribute в конструктор. См. здесь, как это сделать правильно.   -  person casperOne    schedule 02.12.2012
comment
@casperOne Я уже пробовал атрибут [ImportConstructor] и все равно не работает, самое смешное, что раньше он работал, и в других моих контроллерах у меня такой же код, но с другими интерфейсами и они работают, только этот тот, который не работает.   -  person Rene Durazo    schedule 02.12.2012


Ответы (1)


кажется, что где-то в моем приложении я каким-то образом отменил регистрацию этого интерфейса, поэтому я сделал другой интерфейс, и теперь он работает, извините, если это грязное исправление, но у меня не было времени внести надлежащие исправления, спасибо за ваша помощь.

person Rene Durazo    schedule 02.12.2012