1

私は依存性注入を使用するのが「初めて」で、私の質問は次のとおりnewです。オペレーターはどこで使用できますか? new以下に例を示します。演算子を正しく使用しているかどうかを知りたいです。

例は、ASP.NET MVC でありCustomControllerFactory、これまでのところすべて正常に動作しています。

最初に My Entity Class がありMemberます:

public partial class Member
{
    public Member()
    {
        this.LoginTries = 0;
    }

    public int Id { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public DateTime CreationDate { get; set; }
    public int LoginTries { get; set; }
}

次に、いくつかのユーザー アクション用のインターフェイスがあります。

public interface IDiMembership<TUser>
{
    bool Login(string username, string password, bool rememberMe = false);
    void Logout();
    //This is the Function I am using later and where i am using the new Operator
    bool CreateUser(string username, string password, TUser user);
    ...
}

私のインターフェースの私の実装:

public class DiMembership : IDiMembership<Member>
{
    ...
    public bool CreateUser(string username, string password, Member user)
    {
        user.PasswordSalt = Crypto.GenerateSalt();
        user.Password = Crypto.HashPassword(
            string.Format("{0}{1}", password, user.PasswordSalt));
        user.Username = username;
        user.CreationDate = DateTime.Now;
        ...
     }

そして私のController呼び出し、そしてここでも私の質問は次のとおりです。CreateUser新しい「メンバー」でメソッドを呼び出すか、新しいMemberオブジェクトを作成していくつかの値を事前入力するのは正しいですか? この DI は準拠していますか、それとも問題を解決する方法は正しいですか?

private readonly IDiMembership<Member> _membership;
public AccountController(IDiMembership<Member> membership)
{
        _membership = membership;
}

public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid && 
        _membership.CreateUser(model.Username, model.Password, new Member()))
    {
       return RedirectToAction("RegisterSuccess");
    }
     ...
 }
4

2 に答える 2