Получение сеанса из его данных - PullRequest
2 голосов
/ 10 марта 2012

У меня есть сеанс для основного потока в моем приложении, и этот сеанс содержит ценные данные, к которым я хочу получить доступ.Обычно я просто получаю сеанс, используя метод TDSSessionManager.GetThreadSession, но сейчас мне нужно получить доступ к этому сеансу, когда вне основного потока .

Я подумал о том, чтобы получить мой сеанскак-то ссылаясь на некоторые данные внутри него, но я понятия не имею, как. Есть ли способ получить сеанс из чего-то еще, кроме потока, в котором вы находитесь?

Ответы [ 2 ]

2 голосов
/ 10 марта 2012

Если вы используете последнюю версию Delphi, вы можете использовать Rtti , чтобы получить ссылку на нее. TDSSessionManager реализует синглтон, и это облегчит вашу работу.

0 голосов
/ 01 июля 2013

Вы можете перебирать свои сеансы, используя TDSSessionManager. Экземпляр

TDSSessionManager.Instance.ForEachSession
  (
    procedure(const Session: TDSSession)
    begin
      if Session.HasData('User') then begin
        Listbox1.AddItem(Session.GetData('User'),Session);
      end;
    end
  );
...