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

OSCHINA-MIRROR/mirrors-ninject

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 24.11.2024 15:26 0e75ae5

Changelog

Все значимые изменения в этом проекте будут задокументированы в этом файле.

Формат основан на Keep a Changelog и этот проект придерживается Semantic Versioning.

[4.0.0-beta.1] — 2022-10-05

Изменённое

— Убрана поддержка .NET Framework 4.5. Теперь мы предоставляем поддержку только для .NET Framework 4.6, .NET 6 и .NET Standard 2.0. — Изменено возвращаемое значение IBindingResolver (и реализующих классов) с IEnumerable<IBinding> на ICollection<IBinding>$. — Свойства IConstructorScorer ConstructorScorerиICollection InjectionHeuristicsудалены из **(I)Selector**. — Изменено возвращаемое значениеISelector.SelectConstructorsForInjection(Type type)(и реализующих классов) сIEnumerableнаConstructorInfo[]. — Методы T Get(string key, T defaultValue)иvoid Set(string key, object value)удалены из **(I)NinjectSettings**. — МетодGetBindings(Type service)в **IKernel** и **KernelBase** теперь возвращаетIBinding[]вместоIEnumerable. — Удалено наследование IHaveKernelотIBindingSyntax. — Удалена собственность IInjectorFactory InjectorFactoryизPropertyInjectionStrategy. — Добавлена настройка PropertyInjection, которую можно использовать для управления включением инъекции свойств. По умолчанию инъекция свойств включена. — Добавлена настройка MethodInjection, которую можно использовать для управления включением метода инъекции. По умолчанию метод инъекции включён. — Изменён тип аргумента параметров в конструкторе RequestсIEnumerableнаIReadOnlyList$. — Изменён тип аргумента параметров в IResolutionRoot.CreateRequest(...) с IEnumerable<IParameter> на IReadOnlyList<IParameter>$. — Изменён тип аргумента параметров в KernelBase.CreateRequest(...)сIEnumerableнаIReadOnlyList$. — Изменён тип свойства Parameters в IBindingConfiguration (и реализующих классах) с ICollection<IParameter> на IList<IParameter>$. — Изменён тип свойства Parameters в RequestиContextсIEnumerableнаIReadOnlyList$. — В IResolutionRoot добавлен метод object ResolveSingle(IRequest request), который оптимизирован для разрешения одного экземпляра данной службы. Этот новый метод используется в методах расширения Get, TryGet и TryGetAndThrowOnInvalidBinding.

Исправленное

— Привязка/перепривязка к константному универсальному List всегда возвращает пустой список #333.

[3.3.6] — 2022-05-27

Исправленное

— Бесконечный цикл при вызове TryGet<T>(string name) #393. — VerificationException при инъекции указательного типа (.NET Framework только).

[3.3.5] — 2022-04-23

Исправленное

InvalidProgramException при аргументе конструктора Pointer или Value типа #386, #389. — Запрос для пустого List<> возвращает непустой List<>$. — Вызов kernel.Get()` два раза не даёт одинаковый результат #262.

Изменённое

— Изменена реализация IServiceProvider.GetService #376. — Консолидирована обработка параметра isUnique для TryGet #378.

[3.3.5-rc2] — 2022-04-17

Изменённое

— Изменена реализация IServiceProvider.GetService #376. — Консолидирована обработка параметра isUnique для TryGet #378.

[3.3.5-rc1] — 2022-04-12

Исправленное

InvalidProgramException при аргументе конструктора Pointer или Value типа #386, #389. — Запрос для пустого List<> возвращает непустой List<>. Ninject: изменения в версиях

  • [3.3.4] — 2017-11-13

    • Исправлены циклические зависимости при разрешении именованных привязок с использованием шаблона декоратора [#261].
  • [3.3.3] — 2017-10-22

    • Удален отладочный код.
  • [3.3.2] — 2017-10-22

    • Ninject для .NET Core теперь может автоматически загружать расширения.
    • Восстановлено CLSCompliant(true).
  • [3.3.2-rc1] — 2017-10-15

    • Восстановлено CLSCompliant(true).

    • Убрано использование каталога исполняемой сборки из базовых каталогов.

  • [3.3.2-beta1] — 2017-10-07

    • Ninject для .NET Core может теперь автоматически загружать расширения.
    • Каталог исполняемой сборки считается одним из базовых каталогов.
  • [3.3.1] — 2017-10-05

    • Поддержка kernel.Get<IEnumerable>() [#252].

    • Перемещение BindingPrecedenceComparer в папку Bindings.

    • Методы Target GetValues и GetValue устарели.

    • Исправлено ложное срабатывание проверки циклических зависимостей для шаблона декоратора [#251].

  • [3.3.0] — 2017-09-26

    • Изменено название ReleaseNotes.md на CHANGELOG.md и обновлён формат.
  • [3.3.0-beta1] — 2017-09-23

    • Добавлена поддержка .NET Standard 2.0.

    • Сильные перегрузки WithConstructorArgument, которые используют обратный вызов для получения значения [#197].

    • Не выбирать конструкторы с атрибутом ObsoleteAttribute [#224].

    • Значимое сообщение об ошибке, если есть ошибка в конфигурации [#240, #245].

    • Использование HasDefaultValue вместо DBNull [#235].

    • Массив/список конкретных классов будет возвращать пустой, если конкретный класс явно не связан [#227].

    • Убрана поддержка для .NET 3.5 и Silverlight.

    • Улучшено обнаружение циклических зависимостей [#143].

    • InvalidProgramException при выборе конструкторов для MulticastDelegate [#175].

    • КогдаMemberHas сломан [#189].

    • Инъекция в частные родительские свойства не работает [#214, #217].

    • Нарушение Singleton / циклической зависимости WithPropertyValue или OnActivation обратного вызова [#221, #224].

    • Вызванный член не поддерживается в динамической сборке [#225].

    • Условная привязка не учитывается при подсчёте конструкторов [#237].

  • [3.2]

    • bool IRequest.ForceUnique: в случае наличия безусловной и условной привязки возвращает условную. В случае наличия нескольких безусловных или условных привязок выбрасывает исключение ActivationException.

    • IResolutionRoot.TryGetAndThrowOnInvalidBinding (метод расширения): возвращает null, если привязки нет, но выбрасывает ActivationException, если есть привязка, которая не может быть активирована.

    • Введён TypeMatchingConstructorArgument.

    • ToConstructor() теперь может принимать результаты методов в качестве аргумента, например ToConstructor(_ => new Foo(this.GetBar())).

    • WhenNoAncestorMatches, WhenAnyAncestorMatches и WhenNoAncestorNamed.

    • WeakConstructorArgument и WeakPropertyValue, которые сохраняют слабую ссылку на значение, чтобы у Ninject не было ссылки на них при кэшировании созданного экземпляра.

    • Overloads для WhenInjectedInto и WhenInjectedExactlyInto, которые принимают несколько типов для поддержки нескольких разрешённых. Изменения

Добавлено:

  • Добавлена функция WhenAnyAncestorNamed и помечена как устаревшая функция WhenAnyAnchestorNamed.
  • Метод Release перемещён из IKernel в интерфейс IResolutionRoot.

Исправлено:

  • Частные свойства базового класса не проверялись на наличие сеттера и атрибута Inject.
  • Когда объект, являющийся областью действия другого объекта, освобождался, возникало исключение.

[3.0.1]

Добавлено:

  • По умолчанию область видимости можно изменить в NinjectSettings с помощью...

Изменено:

  • Открытые дженерики теперь могут быть переданы в WhenInjectedInto.

Исправлено:

  • Устранено состояние гонки в GarbageCollectionCachePruner.

[3.0.0]

Изменено:

  • Конструктор Scorer игнорирует неявные привязки.
  • Конструктор Scorer игнорирует самопривязки.

[3.0.0-rc3]

Добавлено:

  • Поддержка параметров по умолчанию. Если явная привязка для зависимости отсутствует, но определено значение по умолчанию, оно используется вместо этого.
  • Возможность определения конструктора и аргументов конструктора с использованием перегрузки ToConstructor «to».
  • Перегрузка WhenInjectedExactlyInto: соответствует только в том случае, если цель — точно указанный тип. Это было поведением WhenInjectedInto в Ninject 2.2.
  • WhenAnyAnchestorNamed: соответствует, если какая-либо из привязок предков названа указанным именем.
  • Привязка по умолчанию для IResolutionRoot, которая возвращает ядро.
  • Открытые общие привязки могут быть переопределены закрытыми общими привязками для конкретных типов.
  • Поддержка расширений, которые могут определять привязки, возвращающие один и тот же экземпляр для разных интерфейсов (принцип разделения интерфейса).
  • Общие перегрузки для OnActivation и OnDeactivation, которые можно использовать для приведения типа реализации.
  • Bind<T1, T2, ...> для определения нескольких интерфейсов для одной службы.
  • Rebind<T1, T2, ...> для определения нескольких интерфейсов для одной службы.
  • Поддержка внедрения аргументов конструктора на более глубокие уровни с использованием нового ConstructorArgument («имя», значение, истина).

Изменено:

  • WhenInjectedInto также соответствует, если цель происходит от указанного типа.
  • Связки ToConstant по умолчанию имеют одноэлементную область видимости.
  • Отдельный проект для сред со средним уровнем доверия.
  • Открытые универсальные привязки могут быть перезаписаны закрытыми универсальными привязками.
  • Модули Ninject имеют новый метод VerifyRequiredModulesAreLoaded для проверки загрузки их зависимостей.
  • Если несколько конструкторов имеют одинаковый балл, возникает ActivationExcpetion.

Удалено:

  • Нет веб-сборки. Все сборки больше не имеют ссылок на веб.

Исправлено:

  • Критическое изменение: Get all теперь будет возвращать все привязки и больше не пропускать безусловные в случае наличия условной. Это то же поведение, что и в версии 2.0.1 и ранее.
  • Исправлена ошибка, из-за которой CF и SL версии кэша активации неправильно удаляли слабые ссылки.
  • (для CF): Версия CF выдавала исключение, когда класс имел универсальный метод в базовом классе. Этот багфикс имеет побочный эффект: атрибут Inject больше нельзя определить для базовых методов. Его нужно определять для переопределённого метода!
  • Конструктор Scorer принимает значения по умолчанию.
  • Конструктор Scorer принимает самопривязки.

[2.2.1.0]

Исправлено:

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

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/mirrors-ninject.git
git@api.gitlife.ru:oschina-mirror/mirrors-ninject.git
oschina-mirror
mirrors-ninject
mirrors-ninject
main