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

OSCHINA-MIRROR/blqw-blqw.Literacy

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

Быстрый доступ к свойствам, полям и методам с использованием IL.Emit

Основные характеристики

Полнофункциональность, удобство, скорость

Высокая производительность
Простота использования
Отличная производительность

Сравнение с рефлексией в плане производительности

Тест 1

Тестовое содержание Количество циклов Время выполнения Частота тактов процессора
PropertyInfo.GetValue() 1 000 000 204 мс 467 083 802
dynamic 1 000 000 41 мс 92 844 899
Literacy 1 000 000 28 мс 65 759 428

Тест 2

Тестовое содержание Количество циклов Время инициализации Время выполнения Частота тактов процессора
Lambda.Compile() 1 000 000 1.7693 мс 33 мс 467 083 802
CreateDelegate(GetGetMethod()) 1 000 000 1.8108 мс 29 мс 92 844 899
Literacy 1 000 000 1.6712 мс 12 мс 65 759 428

Код тестирования производительности

Обновление

30 июня 2016 года

  • Обновлен MEF

15 апреля 2016 года

  • Обновлен MEF

23 февраля 2016 года

  • Устранены ошибки

21 февраля 2016 года

  • Добавлены импорты плагинов CreateGetter, CreateSetter, CreateCaller#### 20 февраля 2016 года
  • Улучшена модульность IoC

6 ноября 2015 года

  • Конвертация Convert3 выделена в отдельный модуль
  • Встроен MEF-модуль для загрузки Convert3 через IoC

11 июня 2015 года

  • Поддержка анонимных классов, включая присвоение значений свойств и создание новых объектов

9 июня 2015 года

  • Внёсен проект Convert3 как замена существующего схемы преобразования типов

25 декабря 2014 года

  • В ObjectProperty добавлена свойство MappingName
  • В Convert2 добавлены методы конвертации объекта в объект и объект в DataTable

12 декабря 2014 года

  • В Convert2 добавлены методы полугласной и полуцифровой конвертации

4 декабря 2014 года

  • Добавлен интерфейс IMemberMappingAttribute для управления отображением названий членов объекта, если член реализует этот интерфейс, то при конвертации в Convert2 будет учитываться имя отображения

10 октября 2014 года

  • Ежедневное обслуживание, оптимизация логики StringToGuid, повышение производительности#### 22 сентября 2014 года
  • Выпуск официальной версии#### 14.09.2014
  • Исправлен баг в конвертации типа Convert2 для перечислений (enum)
  • Исправлен баг в конвертации типа Convert2 для nullable типов
  • Исправлен баг в конвертации типа Convert2 для сущностей
  • Исправлен баг в конвертации типа Convert2 для объектов
  • Исправлено игнорирование системой автоматически создаваемых полей в компоненте Literacy
    • В классе ObjectProperty добавлен атрибут AutoField, который используется для определения автоматически создаваемых полей
    • При использовании цикла foreach в коллекции ObjectPropertyCollection автоматически создаваемые поля не учитываются
  • Исправлено неправильное определение возможности присваивания значений полям как постоянных (ранее проверялось, является ли поле только для чтения, но фактически поля только для чтения также могут иметь значения)
  • Добавлена поддержка большего количиства типов в перечислении TypeCodes#### 2014.08.31
  • Добавлена статическая класс Convert2 для конвертации объектов
  • TypeInfo расширен методами TryParse и Convert для конвертации объектов

Корректировки:

  1. "большего количиства" -> "большего количества"
  2. "статическая класс" -> "статический класс"#### 2014.08.19
  • Добавлен статический класс TypesHelper для хранения статических методов работы с объектами типа Type.
  • Добавлен закрытый класс TypeInfo, который расширяет свойства и методы системного объекта типа Type.
  • Изменено использование кэша в классе Literacy; операции были переданы в класс TypesHelper.
  • Изменён способ вычисления TypeCodes; операции были переданы в класс TypeInfo.

2014.07.30

  • Для классов Literacy и ObjectProperty добавлены ID (автонумерация, общая последовательность для обоих классов) и UID (глобально уникальный идентификатор GUID) для удобства использования как ключей при кэшировании.
  • Добавлено перечисление TypeCodes для расширения системы TypeCode, что может незначительно замедлить создание объекта Literacy. Однако, поскольку сам Literacy является глобальным кэшем, это влияние минимально.

2014.07.29

  • Добавлена поддержка атрибутов; теперь можно использовать свойство Attributes напрямую из Literacy или через Literacy.Property или Literacy.Field.

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

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

Введение

Описание недоступно Развернуть Свернуть
WTFPL
Отмена

Обновления

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

Участники

все

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

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