Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

omdc

Trabalhar com classes ASP.NET + C# + classes C#

Recommended Posts

Boas pessoal!

 

Estou a desenvolver um site mas estou a ter problemas com uma cena...

 

 

Tenho uma página ASP.NET que, como é normal, tem uma página de código .cs associada. Deste dessa página de código tenho algo do genero:

 

public partial class comuns_sala : System.Web.UI.Page{	  static public ReqEquipamento objReqEquipamento = new ReqEquipamento();	 .....

Ou seja estou a utilizar um objecto static do tipo objReqEquipamento. O pior é que como o objecto é static se várias pessoas acederem a esta página o objecto é o mesmo e todas as pessoas ficam a trabalhar no mesmo objecto.

 

Se coloco apenas

 

public partial class comuns_sala : System.Web.UI.Page{	  public ReqEquipamento objReqEquipamento = new ReqEquipamento();	 .....

o objecto do tipo public sempre que corro um evento associado a essa página o objReqEquipamento é criado de novo nao podendo por isso trabalhos os dados desse mesmo objecto....

 

http://forum.imasters.com.br/public/style_emoticons/default/upset.gif http://forum.imasters.com.br/public/style_emoticons/default/upset.gif http://forum.imasters.com.br/public/style_emoticons/default/upset.gif http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

 

Como faço para resolver este problema, trabalhar com objectos numa página de codigo .cs sem que os dados dos um objecto existentes se eliminem?????

 

 

Uma dica por favor......

 

 

Obrigado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi o que você quer, mas se você declarar um objeto do tipo que você deseja fora dos métodos, daí no Page_load você instanciar a classe dele, em todos os métodos você utilizará a mesma instância, mas os valores entre os postbacks não são mantidos. Ao menos que você armazene seu objeto em uma Session.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi o que você quer, mas se você declarar um objeto do tipo que você deseja fora dos métodos, daí no Page_load você instanciar a classe dele, em todos os métodos você utilizará a mesma instância, mas os valores entre os postbacks não são mantidos. Ao menos que você armazene seu objeto em uma Session.

Boas... Obrigado pela dica, era mesmo essa a questao. Desculpe a questao ser tao confusa.... Entretanto procurei na net e verifiquei que existe a possibilidade de criar uma variável em cache. É uma solução viável? ou a cache também é partilhada por todos os utilizadores? Entao o melhor é mesmo utilizar uma variável de sessão certo? Mt obrigado! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

:D :D :D

 

 

Bem, utilizei sessions para guardar o objecto e funcionou as mil maravilhas.....

 

 

Mt obrigado pela dica. Aproveito e coloco aqui como se trabalha um pouco com variáveis de sessao:

 

 

Tem um objecto declarado como variavel da class do tipo

public ReqEquipamento objReqEquipamento = new ReqEquipamento();

 

Para a colocar dentro de uma variável de sessão basta fazer:

 

		/* 			 Verifica-se se a variável esta vazia...			se sim adiciona uma variavel de sessão com o nome 'objReqEquipamento' 			e associo-lhe o objecto ja definido anteriormente		  		   Se a variavel ja existe entao podemos obter os dados guardados na variavel de sessao		   Ter em atenção que como o objecto reqEquipamento não é conhecido é necessário efectuar um 		  cast ( (ReqEquipamento) Session["objReqEquipamento"]; ).	   */		if (Session["objReqEquipamento"] == null)			Session.Add("objReqEquipamento", objReqEquipamento);		else			objReqEquipamento = (ReqEquipamento) Session["objReqEquipamento"];

 

 

 

Espero ter sido bem claro na minha explicação.... :rolleyes:

 

Alguma duvida coloquem ou enviem para o mail .... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Obrigado pela dica inicial mais uma vez

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.