2

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)
4

1 に答える 1

-1

私のアプリのどこかでそのインターフェースの登録を解除したようですので、別のインターフェースを作成して動作しています。ダーティフィックスの場合は申し訳ありませんが、適切な修正を行う時間がありませんでした。ありがとうございます。あなたの助け。

于 2012-12-02T04:03:33.483 に答える