1

IUserServiceはnullです。何が起こっているのかわかりません。これは私のAccountControllerです:

private readonly ICustomMembershipProvider _membershipProvider;

public AccountController(ICustomMembershipProvider provider)
{
     _membershipProvider = provider;
}
//other code omitted

私のCustomMembershipProvider

public class CustomMembershipProvider : MembershipProvider, ICustomMembershipProvider
{
private IUserService _userService;

    public CustomMembershipProvider()
        : this(DependencyResolver.Current.GetService<IUserService>())
    {
    }

    public CustomMembershipProvider(IUserService userService)
    {
        _userService = userService;
    }
//other code omitted

ユーザーを登録しようとして、次のメソッドが呼び出されると、my_userServiceが null になり、それがエラーの原因ですが、なぜそれが起こっているのかわかりません。

public override MembershipUser GetUser(string username, bool userIsOnline)
{
    var tempUser = _userService.GetByName(username);
//other code omitted

他のすべての依存関係は正常に解決されます

4

1 に答える 1

1

このエラーが何を指しているのかを理解するのに何時間も費やしたので、この回答を追加しました。私のプロジェクトには次の警告がありました: Warning: Found conflicts between different versions of the same dependent assembly、それは警告だったので注意を払いませんでした。どうやらそれがすべての問題の根源でした。私Project.Webは Mvc 3.0 を使用していProject.Servicesましたが、Mvc 4.0 を使用していました。これが原因でDependencyResolver.Current.GetService<IUserService>()動作しませんでした。Project.ServicesMvc 3.0にロールバックした後、ソリューション全体が魅力的に機能しました。教訓: 警告に注意してください。

于 2013-05-24T13:22:02.590 に答える