Tags: csharp
31.03.09
 05:32:00, por mrxrsd  1274 visualizações
Categorias: dotnet, c#
Não irei entrar no mérito sobre o que é o viewstate, mas dependendo do número de webcontrols que temos em nossa página ele se torna absurdamente grande, uma maneira de contornar isso é salvando ele na sessao.
Iremos criar um atributo no webconfig, caso ele esteja ativado ele salvará o viewstate na sessão.
C#: | protected override object LoadPageStateFromPersistenceMedium()
| | {
| |
| | object objViewState;
| |
| | if (ConfigurationManager.AppSettings["ServerSideViewState"] != null &&
| | ConfigurationManager.AppSettings["ServerSideViewState"].ToUpper().Equals("TRUE"))
| | {
| | objViewState = Context.Session["VIEWSTATE"];
| |
| | if (objViewState == null)
| | {
| | return;
| | // Sessao expirada
| | }
| |
| | return objViewState;
| |
| | }
| | else
| | {
| |
| | return base.LoadPageStateFromPersistenceMedium();
| | }
| |
| | }
| |
| | protected override void SavePageStateToPersistenceMedium(object state)
| | {
| |
| |
| | if (ConfigurationManager.AppSettings["ServerSideViewState"] != null &&
| | ConfigurationManager.AppSettings["ServerSideViewState"].ToUpper().Equals("TRUE"))
| | {
| | Context.Session["VIEWSTATE"] = state;
| | }
| | else
| | {
| |
| | base.SavePageStateToPersistenceMedium(state);
| | }
| |
| | } |
02.03.09
 04:17:00, por mrxrsd  695 visualizações
Categorias: dotnet, c#
Acredito que quase todo mundo já precisou fazer uma validação de domínio alguma vez e boa parte das vezes, a primeira idéia que vem é utilizar um enum, porém algumas pessoas esbarram em uma dificuldade que é não poder ter um "enum de strings", ou seja, setar um texto decente para exibição.
Leia mais »
03.02.09
 02:41:22, por mrxrsd  187 visualizações
Categorias: dotnet, c#
Action Delegate
Os Action delegate encapsulam métodos que não possuem nenhum retorno e aceitam zero ou até quatro paramêtros. A sua assinatura é encontrada no System namespace.
C#: | using System;
| | using System.Collections.Generic;
| | using System.Linq;
| | using System.Text;
| |
| | namespace ConsoleApplication1
| | {
| | class Program
| | {
| |
| | public class Pessoa
| | {
| | private string _nome;
| |
| | public string nome
| | {
| | get { return _nome; }
| | set { _nome = value; }
| | }
| |
| | private int _idade;
| |
| | public int idade
| | {
| | get { return _idade; }
| | set { _idade = value; }
| | }
| |
| | bool _marcado;
| |
| | public bool marcado
| | {
| | get { return _marcado; }
| | set { _marcado = value; }
| | }
| | }
| |
| | static void Main(string[] args)
| | {
| |
| | // Declarando um simples delegate
| | Action<Pessoa> action = EscrevaNome;
| |
| | // Criando nossa lista de pessoas
| | List<Pessoa> vetPessoa = new List<Pessoa>{
| | new Pessoa{ nome="Pessoa 1", idade=15},
| | new Pessoa{ nome="Pessoa 2", idade=18},
| | new Pessoa{ nome="Pessoa 3", idade=24},
| | new Pessoa{ nome="Pessoa 4", idade=10},
| | new Pessoa{ nome="Pessoa 5", idade=13}
| | };
| |
| | // Chamando nosso delegate
| | vetPessoa.ForEach(action);
| |
| |
| | // Vamos supor que gostariamos marcar todas as pessoas que tem mais de 15 anos
| | vetPessoa.FindAll(p => p.idade > 15).ForEach(p => p.marcado = true);
| |
| | // Primeiro utilizamos o método FindAll que aceita um Predicate para fazer o filtro
| | // e depois, usamos o ForEach que aceita uma action para realizar o trabalho
| |
| |
| | }
| |
| | public static void EscrevaNome(Pessoa p)
| | {
| | Console.WriteLine(p.nome);
| | }
| | }
| |
| |
| | } |
10.11.08
04.11.08
 18:56:30, por mrxrsd  420 visualizações
Categorias: dotnet
LINQ - Você já deve ter ouvido falar disso em algum lugar, foi uma das inovações mais badaladas do .net framework 3.5 e eu tentarei mostrar um pouco do que se trata. Language Integrated Query, ou apenas LINQ, é um componente que adiciona uma linguagem declarativa capaz de realizar consultas sobre as coleções de uma forma bem semelhante ao SQL. Bem, comecei a ler o livro do LINQ In Action e resolvir fazer posts sobre as coisas que tenho aprendido.
Leia mais »
10.10.08
 12:30:29, por mrxrsd  1582 visualizações
Categorias: dotnet, c#, dicas
C#: | System.Reflection.Assembly assem = System.Reflection.Assembly.GetExecutingAssembly();
| | Object objeto = assem.CreateInstance("Namespace.MinhaClasse"); |
Repare que é necessário o caminho completo para a instanciação Namespace e o nome da Classe. Em alguns casos você não quer instanciar uma classe do assembly atual, sendo assim iria retornar null, se este for o seu caso, você pode mandar ele achar o assembly da classe que você deseja de um outro jeito.
C#: | System.Reflection.Assembly assem = System.Reflection.Assembly.GetAssembly(typeof(TipoDaClasse)); |
Basta passar o tipo da classe como referência e a lembrar que a referência também tem que ter sido feita no projeto.
|
|