Kit de herramientas de C # Newbe.ObjectVisitor 0.3.7 lanzado, genera automáticamente FluentAPI

Se lanza Newbe.Claptrap 0.3.7 y FluentAPI se genera automáticamente.

actualizar contenido

Originalmente, esperábamos introducir uno de mapeador o validación en 0.3. Pero descubrimos que necesitamos completar un mayor nivel de abstracción para realizar mejor el trabajo de seguimiento.

por lo tanto. En la versión 0.3, hemos completado una característica interesante y novedosa que invita a la reflexión y está llena de alegría:

Genere automáticamente cualquier FluentAPI diseñado según el diagrama de estado.

La descripción detallada es muy larga y se puede ver consultando el siguiente artículo:

" Hice un dibujo y FluentAPI lo generó ella misma "

instrucción del proyecto

Newbe.ObjectVisitor ayuda a los desarrolladores a acceder a todos los atributos de una clase ordinaria de la forma más sencilla y eficiente. Para lograr: verificación, mapeo, recolección y otras operaciones.

Por ejemplo, hay una clase tan simple en su código.

var  order =  new  OrderInfo();

Desea imprimir todos los atributos y valores de esta clase, luego puede usar la reflexión para completar:

para ( var  pInfo  en  typeof (OrderInfo). GetProperties ())
{Console. Writeline( $ " { pInfo . Nombre }: { pInfo . GetValue ( orden )} " ); 
}
    

Si usa esta biblioteca, puede lograr el mismo efecto de las siguientes maneras:

// llamar .V que es un método de extensión estático 
// obtiene un objeto de visitante para el pedido 
var  visitante = pedido. V(); visitante. ParaCada(contexto=>{
    nombre var =contexto.Nombre;
     valor var =contexto.Valor;
    Consola.Writeline( $ " { nombre }: { valor } " );
}). Ejecutar();

      

// también puede convertirlo en un
 orden de una línea . V(). ForEach(c=> Console.Writeline( $ " { c . Nombre }: { c . Valor } " )). Ejecutar(); // o usando un orden de estilo rápido . FormatToString();


Entonces, ¿por qué debería hacer esto?

  • ¡Porque es más rápido! Esta biblioteca se implementa usando árboles de expresión , por lo que tiene un rendimiento 10 veces más rápido que usar la reflexión directamente.
  • ¡Porque es más legible! A través de esta biblioteca, puede usar API de cadena y métodos de nomenclatura para crear un delegado, de modo que su código pueda lograr el mismo efecto legible que el codificado.
  • ¡Porque es más escalable! Si usa esta biblioteca de clases, tiene una manera fácil de acceder a todas las propiedades de una clase. Por lo tanto, hace muchas cosas que desea hacer, como: crear un validador para verificar su modelo, modificar algunos atributos que pueden contener datos confidenciales para evitar la salida al registro, crear un mapeador de objetos similar a AutoMapper pero tener Mejor rendimiento, etc.

Dirección del proyecto GitHub: https://github.com/newbe36524/Newbe.ObjectVisitor

Dirección del proyecto Gitee: https://gitee.com/yks/Newbe.ObjectVisitor

Newbe.ObjectVisitor

Supongo que te gusta

Origin www.oschina.net/news/120761/newbe-objectvisitor-0-3-7-released
Recomendado
Clasificación