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