Служба WCF Утилизируйте серверные ресурсы - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть следующий сервис:

[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).Я читал об этом, но не смог правильно его вызвать.

Может ли кто-нибудь указать мне правильное направление?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...