У меня есть следующий сервис:
[ServiceContract]
interface IUsersService {
[OperationContract]
void CreateUser(UserDTO user)
}
public class UsersService : IUserService, IDisposable{
IRepository<User> _userStore;
UsersService(IRepository<User> userStore){
_userStore = userStore;
}
public void CreateUser(UserDTO user){
User newUser = user.ToEntity();
_userStore.Add(newUser);
_userStore.CommitChanges();
}
public void Dispose(){
_userStore.Dispose();
}
}
На стороне клиента у меня есть следующее:
public class UsersController : Controller{
private IUsersService service;
// IUsersService is an ICommunicationObject
public UsersController(IUsersService service){
this.service = service;
}
public IActionResult CreateUser(UserDTO user){
this.service.CreateUser(user);
return Ok();
}
}
Как заставить метод dispose вызываться на стороне сервера последелать все, что мне нужно было сделать?
Кроме того, я не смог выяснить, как настроить службу так, чтобы метод Dispose в реализации службы на сервере вызывался для каждого сеанса(Мне нужно избавиться от соединения с БД, которое входит в этот экземпляр IRepository).Я читал об этом, но не смог правильно его вызвать.
Может ли кто-нибудь указать мне правильное направление?
Спасибо