É um processo de produção de uma forma compacta de objeto serializado para melhoria de desempenho que resulta em viagens de rede mais rápidas. Como o nome ilustra, o arquivo serializado compacto é compacto na forma de dados e processos. A ideia por trás da serialização compacta é que cada 'tipo conhecido' (um tipo conhecido é um tipo registrado com a estrutura) recebe um identificador de tipo exclusivo de 2 bytes pela estrutura, o que permite que o desserializador identifique exclusivamente os 'tipos conhecidos' .
Por exemplo, suponha que a estrutura atribua um identificador 0 a System.Int32. Em seguida, o serializador grava o identificador de 2 bytes seguido por 4 bytes do valor do objeto no fluxo. O desserializador lê o identificador, descobre o tipo de objeto e, em seguida, cria e preenche o objeto com seu valor. Por outro lado, a serialização nativa grava as informações de tipo completas com dados do objeto. NCache sofisticadamente supera esses problemas de esterilização nativa das seguintes maneiras:
Para usar a serialização compacta, você precisa definir um construtor público padrão (menos parâmetros) em um tipo serializável compacto e registrar esse tipo com NCache Gerente. NCache agora oferece suporte a tipos genéricos personalizados. Todos os tipos genéricos com qualquer número de argumentos podem ser serializados por meio de serialização compacta. Se um cliente não deseja adicionar tipos genéricos e seus parâmetros através da interface do usuário, ele tem a opção de adicioná-los através da classe IGenericTypes.
Para usar tipos serializáveis compactos com NCache Configurar cache com NCache Manager e registre seus tipos serializáveis compactos com NCache.
Você pode registrar os tipos um por um através 'Adicionar tipos' botão. Execute as etapas a seguir para registrar seus tipos com o cache configurado:
Esta é a outra maneira de registrar tipos compactos genéricos através do "Generic Type Handler". Com o Generic Type Handler o usuário pode adicionar todos os tipos genéricos de uma vez implementando nossa interface. Isso economiza tempo e esforço. Aqui está um código de exemplo para isso.
public class CustomGenericType <T,K,V> { }
public class SetGenerics: IGenericTypeProvider
{
Type[] types = new Type[6];
#region IGenericTypeProvider Members
Type[] IGenericTypeProvider.GetGenericTypes()
{
types[0]=typeof(Dictionary<string, Customer>);
types[1]=typeof(List<int>);
types[2]=typeof(CustomGenericType<Employee, Product, Customer>);
types[3]=typeof(CustomGenericType<Employee, Product, int>);
types[4]=typeof(CustomGenericType<Employee, string, byte>);
types[5]=typeof(CustomGenericType<string, Customer, bool>);
return types;
}
#endregion
}
Para registrar tipos, siga estas etapas.