1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yks-Newbe.ObjectVisitor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Оу, мой дорогой друг, я очень рад, что вы обратили внимание на этот репозиторий и предприняли некоторые попытки.

Этот репозиторий всё ещё находится на очень предварительной стадии. После трёх секунд тщательного рассмотрения я решил заархивировать этот репозиторий, основная причина в том, что у меня не так много времени для его поддержки. Позже я подумаю о создании простых видео или статей о моём опыте написания кода этого репозитория. Ещё раз спасибо за ваш интерес.

А пока я предлагаю, если у вас всё ещё есть подобные потребности, почему бы не сосредоточиться на следующих проектах или документах:


Newbe.ObjectVisitor

All Contributors

  • build and scan
  • Codecov
  • Coverage
  • Quality Gate Status
  • Codacy Badge
  • xml document Crowdin
  • documents Crowdin

Banner

Вы можете посетить все свойства вашего класса с помощью этой библиотеки с высокой производительностью, как при посещении свойств путём жёсткого кодирования.

Например, вот объект в вашем коде:

var order = new OrderInfo();

И вы хотите распечатать все свойства заказа.

for(var pInfo in typeof(OrderInfo).GetProperties())
{
    Console.Writeline($"{pInfo.Name}: {pInfo.GetValue(order)}");
}

Используя эту библиотеку, вы можете сделать это следующим образом:

// вызов .V, который является статическим методом расширения
// вы получаете объект посетителя для заказа
var visitor = order.V();

visitor.ForEach(context=>{
    var name = context.Name;
    var value = context.Value;
    Console.Writeline($"{name}: {value}");
}).Run();

// Вы также можете сделать это в одну строку
order.V().ForEach(c=> Console.Writeline($"{c.Name}: {c.Value}")).Run();

// или используя быстрый стиль
order.FormatToString();

Зачем мне это нужно?

  • Это быстрее. Эта библиотека реализована с использованием деревьев выражений (Expression Trees), которые стоят в 10 раз меньше времени, чем при использовании отражения.
  • Она читаема. Эта библиотека может генерировать лямбда-функцию для обработки созданного вами потока кода, точно так же, как ваше жёсткое кодирование без отражения.
  • Она расширяема. Если вы сможете посещать все свойства объекта простым способом, вы сможете проверять их по своему усмотрению, изменять некоторые значения, если есть что-то конфиденциальное, создавать маппер, подобный automapper, и т. д.

API

Пожалуйста, ознакомьтесь с последними полными документами API на сайте ниже:

  • http://ov.newbe.pro
  • http://cn.ov.newbe.pro, более быстрый доступ к материковому Китаю Пакеты | Пакет | Версия | Скачать | Описание | | --- | --- | --- | --- | | Newbe.ObjectVisitor | Newbe.ObjectVisitor.Version | Newbe.ObjectVisitor.Download | Основная информация о Newbe.ObjectVisitor |

Контакты QQ Group: 【Newbe.Claptrap CL4P-TP 610394020】: https://jq.qq.com/?_wv=1027&k=Lkhbwj0o

Звёзды проекта с течением времени Stargazers over time

Вкладчики ✨ Спасибо этим замечательным людям (emoji key):


Newbe36524

📝 💻 📖

kotone

🎨

黑洞视界

🤔

Этот проект следует спецификации all-contributors. Приветствуются любые вклады!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Newbe.ObjectVisitor помогает разработчикам наиболее простым и эффективным способом получать доступ ко всем свойствам обычного класса. Это позволяет реализовывать такие операции, как: проверка, сопоставление, сбор и т. д. Развернуть Свернуть
C# и 3 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/yks-Newbe.ObjectVisitor.git
git@api.gitlife.ru:oschina-mirror/yks-Newbe.ObjectVisitor.git
oschina-mirror
yks-Newbe.ObjectVisitor
yks-Newbe.ObjectVisitor
main