﻿<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>equadrat.Framework.Core.Interfaces</id>
    <version>8.3.2-prerelease-00067</version>
    <authors>equadrat</authors>
    <requireLicenseAcceptance>true</requireLicenseAcceptance>
    <license type="file">equadrat.Framework.Core.License.md</license>
    <licenseUrl>https://aka.ms/deprecateLicenseUrl</licenseUrl>
    <icon>images/equadrat-oss.Icon.png</icon>
    <readme>README.md</readme>
    <projectUrl>https://www.equadrat.net/</projectUrl>
    <iconUrl>https://www.equadrat.net/wp-content/uploads/equadrat-oss.Icon.png</iconUrl>
    <description>A framework to extend the Microsoft .net framework with extra core functionality.</description>
    <releaseNotes># Release notes
## v8.3.2
- Added cache for CoreEventHandlerInterruptInvocators.
- Replaced null-equality checks with null-reference checks.
## v8.3.1
- Disabled trimming.
## v8.3.0
- Removed .net Framework versions (v4.x) from target frameworks.
## v8.2.0
- Added support for .net 10.
## v8.1.8
- Added single-parameter overloads of Convert[Object] and Convert[Object]Back methods to ICoreValueConverter.
## v8.1.7
- Improved detection of logging event related attributes in CoreLoggerBase to support attributes declared in implemented interfaces.
## v8.1.6
- Excluded SDK related files from equadrat.Framework.Core.CodeGenerator.
## v8.1.5
- Included missing files to equadrat.Framework.Core.CodeGenerator.
## v8.1.4
- Added code generator triggered by CoreGenerateLoggerAttribute to generate the implementation for loggers based on CoreLoggerBase.
- Added code generator triggered by CoreGenerateInjectorAttribute to generate a constructor to initialize all members of a specified interface and all read-only members (properties and fields).
- Removed invalid path/methods from ICoreCommandFactory fluent API.
## v8.1.3
- Added type check to CoreCustomModelBinderProvider to try serialize outbound-content only if the object matches the declared type of the ProducesAttribute.
## v8.1.2
- Added [Try]GetLifetime methods to ICoreIOCRegistry and ICoreIOCFactory.
- Added TryGetLifetime extension methods for IServiceCollection to get the lifetime of a service.
- Added content type and file extension mapping for serializers.
- Added support to serialize models as HTTP content.
- Added fluent API to ICoreCommandFactory to simplify creating commands. Marked old factory methods as obsolete.
## v8.1.1
- Added support for ProducesAttribute when using ASP.net MVC to select the correct serializer based on the type of model.
## v8.1.0
- Added methods to ICoreEditableLoggingLevelFilter to set the minimum logging level in an easier way.
- Changed behavior of CoreAppSettingsLoggingLevelFilter to use partial match of the product name with the logging category to support parent/child categories.
- Added ICoreDispatcher.CanDispatch property to indicate whether a dispatcher can actually dispatch at that time. This affects primarily CoreWebAssemblyDispatcher.
- Changed the behavior of CoreWebAssemblyDispatcher to simply pass-through calls if the dispatcher currently can't dispatch. This is usually the case when the webassembly application starts but no render has been created.
- Added CoreReadOnlyArrayList as a read-only version of CoreArrayList.
- Added ICoreBootstrapperModule.GetRegisterSteps and .GetInitializeSteps to support IServiceCollection and IServiceProvider (or any custom register/initialize logic).
- Marked ICoreBootstrapperModule.GetRegisterMethods and .GetInitializeMethods as obsolete. Use the new step-based methods with "this.Step(...)" to wrap the register/initialize callbacks as steps. Add equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection to your project to have an overload for register methods using IServiceCollection.
- Added AsTransient[Of] and AsScoped[Of] overloads for IOC registrations.
- Marked AsInstancePerCall[Of] and AsInstancePerScope[Of] methods (and related enums etc.) as obsolete.
- Added fluent API to ICoreOwnerTokenFactory to simplify creating tokens. Marked old factory methods as obsolete.
- Added overloads for ICoreReflectionHelper.IsNullable.
- Added ICoreExpressionHelper.ToString to translate an expression tree into a JSON text.
- Added CoreReferenceExceptionEqualityComparer to compare instances of CoreReferenceException.
- Fixed bug in glob-pattern to regex-pattern transformation.
- Removed class restriction from ICorePolymorphList.
## v8.0.0
- Removed Xamarin support.
- Removed obsolete code.
## v7.6.1
- Added CoreFolderConfigurationSource to represent all config files of a folder as a single IConfiguration object. It updates when files are added/updated/deleted. Use extension methods AddJsonConfigFolder (equadrat.Framework.Core.Microsoft.Extensions.Configuration.Json) and AddXmlConfigFolder (equadrat.Framework.Core.Microsoft.Extensions.Configuration.Xml) for simpler access.
- Added ICoreDebouncerFactory (CoreDebouncer) to create debouncer objects for callbacks.
## v7.6.0
- Added nullable support for ICoreEvent add/remove handler.
- Added nullable support for property names when using ICorePropertyChangedObserver.
- Minor fixes.
- Updated NuGet package references.
## v7.5.0
- Added ICoreLockFactory.CreateReaderWriterLock to create a read-write lock which support async/await.
- Added CoreArrayEqualityComparer, CoreDictionaryEqualityComparer, CoreItemEqualityComparer, CoreListEqualityComparer, CoreItemComparer.
- Added parse methods to ICoreDataSizeHelper.
- Added CoreDisposableExtensions.ConfigureAwait, extension method for IAsyncDisposable to inline async using statements.
- Changed eCoreDataSizeFormat.Format to separate eCoreDataSizeFormat.Scientific.
- Updated NuGet package references.
## v7.4.0
- Changed CoreTimeFormatProvider to let DefaultMaxDecimalPlaces not override FixedDecimalPlaces when MaxDecimalPlaces is not defined.
- Added CoreMicrosoftExtensionsHostBuilderHelper.InitBootstrapperModules to force initializing the bootstrapper modules.
- Added CoreMultiPointerQueue.
- Added queue support for serializers.
- Added CoreInterlockedEnumFlags as helper to use enums with Interlocked.
- Added CoreObserverFactory.
- Included similar information to CoreMicrosoftExtensionsLoggingTarget as for other logging targets.
- Minor optimizations for the regular CoreQueue.
- Updated NuGet package references.
## v7.3.0
- Added support for .net 9.
- Updated NuGet package references.
- Fixed bug in CoreLogger (Microsoft.Extensions.Logging) ignoring late changes to ICoreLoggingCategoryNameSubstitutionRegistry.
- Added serializer for System.Text.Json (FormatName: JSON/TEXT).
- Added extension method for easier integration of bootstrapper modules when using Microsoft.Extensions.Hosting.
## v7.2.1
- Fixed CoreCustomModelBinderProvider to handle complex types only.
- Fixed CoreMicrosoftExtensionsAspNetCoreMvcHelper to enlist instances of CoreCustomModelBinderProvider at a later position in the sequence of model binder providers but before ComplexTypeModelBinderProvider.
- Updated ValueConverterChain to provide the target type(s) to the value converters of the chain.
- Updated NuGet package references.
## v7.2.0
- Added support for asynchronous events using ICoreEventFactory.
- Refactored CoreRuntimeInformation to support OS-platforms WEBASSEMBLY, WASM, WASI and BROWSER.
- Refactored ICoreAsyncObservable.SubscribeAsync to return ValueTask&lt;IAsyncDisposable&gt;.
- Updated NuGet package references.
## v7.1.0
- Removed CoreTplThreadPool and CoreTplTaskScheduler.
- Moved CoreHashCode from Framework.Core to Framework.Core.Interfaces.
- Added missing NotNullIfNotNullAttribute to CoreEnumerableExtensions.AsCollection.
## v7.0.1
- Maintenance release
## v7.0.0
- Initial Release</releaseNotes>
    <copyright>Copyright © equadrat 2004 - 2026</copyright>
    <tags>equadrat framework core ioc dependency injection container bootstrap serializer observable collection splitter merger sorting command dispatcher threading task logging owner token weak events binary heap queue stack tuple random data generator hash reflection embedded resource async interface atomic lock</tags>
    <repository type="git" url="https://git.equadrat.net/equadrat-oss/Framework.Core" branch="refs/heads/test" commit="7a9a6e2e8b496bd8c24e852f41106d33867c7d8d" />
    <dependencies>
      <group targetFramework="net5.0" />
      <group targetFramework="net6.0" />
      <group targetFramework="net7.0" />
      <group targetFramework="net8.0" />
      <group targetFramework="net9.0" />
      <group targetFramework="net10.0" />
      <group targetFramework=".NETStandard2.0">
        <dependency id="Microsoft.Bcl.AsyncInterfaces" version="10.0.2" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Bcl.HashCode" version="6.0.0" exclude="Build,Analyzers" />
        <dependency id="System.Buffers" version="4.6.1" exclude="Build,Analyzers" />
        <dependency id="System.Memory" version="4.6.3" exclude="Build,Analyzers" />
      </group>
      <group targetFramework=".NETStandard2.1" />
    </dependencies>
  </metadata>
</package>