私は依存性注入を使用するのが「初めて」で、私の質問は次のとおり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");
}
...
}