私は依存関係インジェクションを実装しようとしていますが、クラスのインターフェイスとリポジトリを実装する方法を知っています。 この私のサンプル:これは私のインタフェースであるmvcで依存関係注入を実装する方法は?
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
}
は:
public class UserRepsitory:IUser
{
private _Context _context;
public UserRepsitory(_Context _context)
{
this._context = _context;
}
public IEnumerable<User> GetUsers()
{
return _context.User.ToList();
}
public void AddUser(User user)
{
_context.User.Add(user);
}
public void EditUser(User user)
{
_context.Entry(user).State = System.Data.Entity.EntityState.Modified;
}
public User UserGetById(int id)
{
return _context.User.Find(id);
}
public void Save()
{
_context.SaveChanges();
}
public void DeleteUser(int id)
{
var Search = _context.User.Find(id);
_context.User.Remove(Search);
}
}
とコントローラのメソッドの1:
private IUser userRepsitory;
public UsersController()
{
this.userRepsitory = new UserRepsitory(new _Context());
}
public UsersController(IUser UserRepository)
{
this.userRepsitory = UserRepository;
}
public ActionResult Index()
{
return View(userRepsitory.GetUsers());
}
public interface IUser
{
IEnumerable<User> GetUsers();
void AddUser(User user);
void EditUser(User user);
void DeleteUser(int id);
User UserGetById(int id);
void Save();
}
これは私のリポジトリです次のステップは何ですか?
この後、私はスタンドアップクラスを呼び出す必要がありますか? –
@salehazami ASP.Netのどのバージョンを使用しているかを判断することは本当に重要です。 DIを実装する多くのフレームワーク(MicrosoftとOthertype)があります。実装する前に、この質問を簡略化するために1つを選択する必要があります。 –
ありがとう私はASP.NET MVC 5を使用しています –