none
Passar o valor de um Session para um Classe RRS feed

Respostas

  • Se você precisa fazer isso, é melhor você repensar a maneira como você está trabalhando...

    Se a classe que você está trabalhando possui uma dependência de algum valor que está armazenado na session, blza! Basta passar o valor via construtor e/ou algum método / getter / setter... 

    Olá Carlos,

    Conforme o Rafael mencionou, há um conflito na sua arquitetura, pois, se há uma camada de dados (imagino ser um outro projeto), esta não deve ter uma dependência de uma solução WEB, pois, nesse caso, não faria sentido a separação.

    Então, a sua classe de dados deve prover uma maneira de receber o valor (como já mencionado, via construtor, propriedade ou método).

    Se o valor está na session, no web.config, arquivo texto ou web service, a sua camada de apresentação/interface irá recuperar este valor e passar para a classe em questão, ficando independente.

    Abraços.

    • Marcado como Resposta CEFL segunda-feira, 8 de abril de 2013 20:17
    sábado, 6 de abril de 2013 01:21

Todas as Respostas

  • Se você precisa fazer isso, é melhor você repensar a maneira como você está trabalhando...

    Se a classe que você está trabalhando possui uma dependência de algum valor que está armazenado na session, blza! Basta passar o valor via construtor e/ou algum método / getter / setter... 

    • Sugerido como Resposta Diego Cotini sábado, 6 de abril de 2013 01:10
    segunda-feira, 1 de abril de 2013 16:32
  • então, a situação é a seguinte:

    eu tenho uma classe de acesso a dados, la tem um método que pega o valor no webconfig, porém, estou trabalhando com mais de uma base.

    até então eu pegava o valor no webconfig, mas agora não posso mais fazer isso, os usuários ao se logarem, eles escolhem a empresa, ou seja, cada uma num database diferente, gravo esse valor numa session para identificar a empresa selecionada no login e a partir disso eu preciso fazer essa tratativa, pegar o valor da empresa e selecionar o database desta empresa.

    é a melhor maneira de se fazer?

    quarta-feira, 3 de abril de 2013 15:38
  • Você não poderia pegar, em vez da Session, diretamente da base de dados, já que o login, se for Forms Authentication, está vindo da base?

    quinta-feira, 4 de abril de 2013 14:44
  • Carlos,

    Se você passar o contexto como parâmetro acho que assim você consegue. Aqui tenho uma classe e um método que pega a sessão do contexto.

        public class ValorSessao
        {
            public void GetSession(HttpContext context)
            {
                string Text = (string)context.Session["Session"];
            }
        }

    Agora no form_Load

            protected void Page_Load(object sender, EventArgs e)
            {
                Context.Session["Session"] = "Hello";
                ValorSessao VS = new ValorSessao();
                VS.GetSession(Context);
            }
    Vale lembra questão de desempenho. Boa opção do @Rafael.

    quinta-feira, 4 de abril de 2013 15:37
    Moderador
  • Se você precisa fazer isso, é melhor você repensar a maneira como você está trabalhando...

    Se a classe que você está trabalhando possui uma dependência de algum valor que está armazenado na session, blza! Basta passar o valor via construtor e/ou algum método / getter / setter... 

    Olá Carlos,

    Conforme o Rafael mencionou, há um conflito na sua arquitetura, pois, se há uma camada de dados (imagino ser um outro projeto), esta não deve ter uma dependência de uma solução WEB, pois, nesse caso, não faria sentido a separação.

    Então, a sua classe de dados deve prover uma maneira de receber o valor (como já mencionado, via construtor, propriedade ou método).

    Se o valor está na session, no web.config, arquivo texto ou web service, a sua camada de apresentação/interface irá recuperar este valor e passar para a classe em questão, ficando independente.

    Abraços.

    • Marcado como Resposta CEFL segunda-feira, 8 de abril de 2013 20:17
    sábado, 6 de abril de 2013 01:21
  • Se for imprescindível realizar a captura do valor da session na camada de dados, uma maneira de fazer isso seria:

    var valor = HttpContext.Current.Session["value"];

    Deve-se dar um using no System.Web (se for outro projeto que não é WEB, terá que dar um add reference, System.Web): using System.Web;

    Abraços.

    sábado, 6 de abril de 2013 01:47