Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/workflows/ci-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ jobs:
strong-name-key-filename: cuemon.snk
runs-on: ${{ matrix.arch == 'ARM64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
upload-build-artifact-name: build-${{ matrix.configuration }}-${{ matrix.arch }}
include-preview: true
secrets:
GCP_TOKEN: ${{ secrets.GCP_TOKEN }}
GCP_BUCKETNAME: ${{ secrets.GCP_BUCKETNAME }}
Expand All @@ -65,7 +66,7 @@ jobs:
configuration: ${{ matrix.configuration }}
version: ${{ needs.build.outputs.version }}
download-build-artifact-pattern: build-${{ matrix.configuration }}-X64

include-preview: true

test_linux:
name: call-test-linux
Expand All @@ -84,6 +85,7 @@ jobs:
build: true # we need to build due to xUnitv3
restore: true # we need to restore since we disabled caching
download-pattern: build-${{ matrix.configuration }}-${{ matrix.arch }}
include-preview: true

test_windows:
name: call-test-windows
Expand All @@ -103,6 +105,7 @@ jobs:
build: true # we need to build for .net48
restore: true # apparently we need to restore for .net48
download-pattern: build-${{ matrix.configuration }}-${{ matrix.arch }}
include-preview: true

integration_test:
name: ⚗️ Integration Test
Expand All @@ -120,6 +123,8 @@ jobs:

- name: Install .NET
uses: codebeltnet/install-dotnet@v3
with:
includePreview: true

- name: Install .NET Tool - Report Generator
uses: codebeltnet/dotnet-tool-install-reportgenerator@v1
Expand Down Expand Up @@ -251,6 +256,7 @@ jobs:
organization: geekle
projectKey: Cuemon
version: ${{ needs.build.outputs.version }}
include-preview: true
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

Expand Down
8 changes: 4 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ Follow the repo rules first; do not invent commands or conventions.
## Toolchain

- .NET SDK with `LangVersion=latest`.
- Source TFMs: `net10.0;net9.0;netstandard2.0`.
- Test TFMs: `net10.0;net9.0` on Linux; adds `net48` on Windows.
- Benchmark TFMs: `net10.0;net9.0`.
- Source TFMs: `net11.0;net10.0;netstandard2.0`.
- Test TFMs: `net11.0;net10.0` on Linux; adds `net48` on Windows.
- Benchmark TFMs: `net11.0;net10.0`.
- Central package management via `Directory.Packages.props` (`ManagePackageVersionsCentrally=true`).
- CI runs on Linux (ubuntu-24.04) and Windows (windows-2025), both X64 and ARM64.
- TFM compatibility is mandatory: proposals and code changes must work for all source TFMs. Do not assume `net9.0`/`net10.0` APIs exist in `netstandard2.0`; use conditional compilation (`#if NET9_0_OR_GREATER`) or compatible fallbacks where needed.
- TFM compatibility is mandatory: proposals and code changes must work for all source TFMs. Do not assume `net9.0`/`net10.0` APIs exist in `netstandard2.0`; use conditional compilation (`#if NET10_0_OR_GREATER`) or compatible fallbacks where needed.

## Build Commands

Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),

For more details, please refer to `PackageReleaseNotes.txt` on a per assembly basis in the `.nuget` folder.

## [11.0.0] - 2026-03-14

This is a major release centered on two deliberate changes: moving the Cuemon build and test matrix forward to .NET 11, and removing the temporary compatibility bridge that kept `Cuemon.Core` forwarding foundational APIs from `Cuemon.Kernel`.

The .NET update is straightforward: `net11.0` is now part of the target matrix and `net9.0` is no longer supported. The more important part is the assembly boundary change. Version 10.5.0 introduced `Cuemon.Kernel` while keeping `Cuemon.Core` backward compatible through `[TypeForwardedTo]`. Starting with 11.0.0, that forwarding layer is removed.

> [!WARNING]
> Breaking change from 11.0.0 and forward: applications using foundational APIs that were previously reachable through `Cuemon.Core` must now reference `Cuemon.Kernel` directly. This includes guard/configuration/async/text primitives such as `Validator`, `Arguments`, `Patterns`, `Disposable`, `Convertible`, `Awaiter`, parser and encoding option types, as well as date and range primitives such as `DateSpan`, `DateTimeRange`, `Range`, `TimeRange`, and `TimeUnit`.

### Changed

- Solution, source, test, and benchmark target frameworks now include `net11.0`; `net9.0` has been removed from the supported matrix.
- Central package management was updated to align `net11.0` and `netstandard2.0` builds with .NET 11 preview package versions, while `net10.0` remains on the .NET 10 package line where applicable.
- `DateSpan`, `DateTimeRange`, `Range`, `TimeRange`, and `TimeUnit` source files now live in `Cuemon.Kernel` as part of the completed kernel split.
- `BufferWriterOptions` was updated to follow the new `NET10_0_OR_GREATER` conditional path.
Comment on lines +20 to +23
- Solution organization now groups `Cuemon.Core` and `Cuemon.Kernel` under a dedicated `/src/corelibs/` folder.
- Test environment definitions now target Docker images for `net10` and `net11`.

### Removed

- `Cuemon.Core` no longer uses `[TypeForwardedTo]` to forward foundational `Cuemon.Kernel` types, making the kernel split a true assembly boundary instead of a compatibility shim.


## [10.5.0] - 2026-03-13

Okay, so this might look like a major release — and effort-wise it certainly felt like one — but it's actually a fully backward-compatible minor bump. Thanks to a helping hand from AI and a long-standing wish to carve out a small, lean core from Cuemon, we've introduced a brand-new assembly: **Cuemon.Kernel**. Think of it as the nano (or at least noticeably smaller) sibling of `Cuemon.Core`, shipping only the most essential and much-loved types — validators, conditions, decorators, disposable patterns, the options/parameter-object infrastructure, text encoding helpers and async primitives.
Expand Down
6 changes: 4 additions & 2 deletions Cuemon.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
<Project Path="src/Cuemon.AspNetCore.Razor.TagHelpers/Cuemon.AspNetCore.Razor.TagHelpers.csproj" />
<Project Path="src/Cuemon.AspNetCore/Cuemon.AspNetCore.csproj" />
<Project Path="src/Cuemon.Core.App/Cuemon.Core.App.csproj" />
<Project Path="src/Cuemon.Core/Cuemon.Core.csproj" />
<Project Path="src/Cuemon.Data.Integrity/Cuemon.Data.Integrity.csproj" />
<Project Path="src/Cuemon.Data.SqlClient/Cuemon.Data.SqlClient.csproj" />
<Project Path="src/Cuemon.Data/Cuemon.Data.csproj" />
Expand Down Expand Up @@ -39,14 +38,17 @@
<Project Path="src/Cuemon.Extensions.Threading/Cuemon.Extensions.Threading.csproj" />
<Project Path="src/Cuemon.Extensions.Xml/Cuemon.Extensions.Xml.csproj" />
<Project Path="src/Cuemon.IO/Cuemon.IO.csproj" />
<Project Path="src/Cuemon.Kernel/Cuemon.Kernel.csproj" Id="e8705265-1862-4d38-a41a-c94b3fcbc3f7" />
<Project Path="src/Cuemon.Net/Cuemon.Net.csproj" />
<Project Path="src/Cuemon.Resilience/Cuemon.Resilience.csproj" />
<Project Path="src/Cuemon.Runtime.Caching/Cuemon.Runtime.Caching.csproj" />
<Project Path="src/Cuemon.Security.Cryptography/Cuemon.Security.Cryptography.csproj" />
<Project Path="src/Cuemon.Threading/Cuemon.Threading.csproj" />
<Project Path="src/Cuemon.Xml/Cuemon.Xml.csproj" />
</Folder>
<Folder Name="/src/corelibs/">
<Project Path="src/Cuemon.Core/Cuemon.Core.csproj" />
<Project Path="src/Cuemon.Kernel/Cuemon.Kernel.csproj" Id="e8705265-1862-4d38-a41a-c94b3fcbc3f7" />
</Folder>
<Folder Name="/test/">
<Project Path="test/Cuemon.AspNetCore.Authentication.Tests/Cuemon.AspNetCore.Authentication.Tests.csproj" />
<Project Path="test/Cuemon.AspNetCore.FunctionalTests/Cuemon.AspNetCore.FunctionalTests.csproj" />
Expand Down
8 changes: 4 additions & 4 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
</PropertyGroup>

<PropertyGroup Condition="'$(IsSourceProject)' == 'true'">
<TargetFrameworks>net10.0;net9.0;netstandard2.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;netstandard2.0</TargetFrameworks>
<Copyright>Copyright © Geekle 2009-2026. All rights reserved.</Copyright>
<Authors>gimlichael</Authors>
<Company>Geekle</Company>
Expand Down Expand Up @@ -57,11 +57,11 @@
</ItemGroup>

<PropertyGroup Condition="'$(IsTestProject)' == 'true' AND '$(IsLinux)' == 'true'">
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0</TargetFrameworks>
</PropertyGroup>

<PropertyGroup Condition="'$(IsTestProject)' == 'true' AND '$(IsWindows)' == 'true'">
<TargetFrameworks>net10.0;net9.0;net48</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0;net48</TargetFrameworks>
</PropertyGroup>

<PropertyGroup Condition="'$(IsTestProject)' == 'true'">
Expand Down Expand Up @@ -111,7 +111,7 @@
</ItemGroup>

<PropertyGroup Condition="'$(IsBenchmarkProject)' == 'true'">
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0</TargetFrameworks>
<IsPackable>false</IsPackable>
<RunAnalyzers>false</RunAnalyzers>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
Expand Down
34 changes: 17 additions & 17 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -22,33 +22,33 @@
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
<PackageVersion Include="Microsoft.Data.Sqlite" Version="10.0.4" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="11.0.0-preview.2.26159.112" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('netstandard2'))">
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.4" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.4" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.4" />
<PackageVersion Include="Microsoft.Extensions.Configuration.FileExtensions" Version="10.0.4" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="10.0.4" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="Microsoft.Extensions.Configuration.FileExtensions" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="System.Text.Json" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
<PackageVersion Include="System.Text.Json" Version="10.0.4" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.2.3" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net9'))">
<PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.14" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.14" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.14" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.14" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="9.0.14" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net10')) OR $(TargetFramework.StartsWith('netstandard2'))">
<ItemGroup Condition="$(TargetFramework.StartsWith('net10'))">
<PackageVersion Include="Microsoft.Data.Sqlite" Version="10.0.4" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.4" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.4" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.4" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.4" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net9')) OR $(TargetFramework.StartsWith('net10'))">
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.1.4" />
<ItemGroup Condition="$(TargetFramework.StartsWith('net11')) OR $(TargetFramework.StartsWith('netstandard2'))">
<PackageVersion Include="Microsoft.Data.Sqlite" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="11.0.0-preview.2.26159.112" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="11.0.0-preview.2.26159.112" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net10')) OR $(TargetFramework.StartsWith('net11'))">
<PackageVersion Include="Microsoft.Data.SqlClient" Version="7.0.0-preview4.26064.3" />
</ItemGroup>
Comment on lines +44 to 53
</Project>
2 changes: 1 addition & 1 deletion src/Cuemon.AspNetCore.App/Cuemon.AspNetCore.App.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0</TargetFrameworks>
<ProjectGuid>240bdf91-e7c7-4cb4-a39d-e1a5374c5602</ProjectGuid>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0</TargetFrameworks>
<ProjectGuid>a10adf91-e7c7-4cb4-a39d-e1a5374c5602</ProjectGuid>
</PropertyGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/Cuemon.AspNetCore.Mvc/Cuemon.AspNetCore.Mvc.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0</TargetFrameworks>
<ProjectGuid>a20adf91-e7c7-4cb4-a39d-e1a5374c5602</ProjectGuid>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0</TargetFrameworks>
<ProjectGuid>a30adf91-e7c7-4cb4-a39d-e1a5374c5602</ProjectGuid>
</PropertyGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/Cuemon.AspNetCore/Cuemon.AspNetCore.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
<TargetFrameworks>net11.0;net10.0</TargetFrameworks>
<ProjectGuid>a00adf91-e7c7-4cb4-a39d-e1a5374c5602</ProjectGuid>
</PropertyGroup>

Expand Down
80 changes: 0 additions & 80 deletions src/Cuemon.Core/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -1,84 +1,4 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cuemon;
using Cuemon.Collections.Generic;
using Cuemon.Configuration;
using Cuemon.IO;
using Cuemon.Text;
using Cuemon.Threading;

[assembly: ComVisible(false)]
[assembly: Guid("989939cf-cef2-4e23-8bce-725255e35ce6")]
[assembly: TypeForwardedTo(typeof(Alphanumeric))]
[assembly: TypeForwardedTo(typeof(ArgumentReservedKeywordException))]
[assembly: TypeForwardedTo(typeof(Arguments))]
[assembly: TypeForwardedTo(typeof(AsyncOptions))]
[assembly: TypeForwardedTo(typeof(AsyncRunOptions))]
[assembly: TypeForwardedTo(typeof(Awaiter))]
[assembly: TypeForwardedTo(typeof(ByteOrderMark))]
[assembly: TypeForwardedTo(typeof(CasingMethod))]
[assembly: TypeForwardedTo(typeof(Condition))]
[assembly: TypeForwardedTo(typeof(ConditionalValue))]
[assembly: TypeForwardedTo(typeof(ConditionalValue<>))]
[assembly: TypeForwardedTo(typeof(Convertible))]
[assembly: TypeForwardedTo(typeof(ConvertibleConverterDictionary))]
[assembly: TypeForwardedTo(typeof(ConvertibleOptions))]
[assembly: TypeForwardedTo(typeof(Decorator))]
[assembly: TypeForwardedTo(typeof(Decorator<>))]
[assembly: TypeForwardedTo(typeof(Disposable))]
[assembly: TypeForwardedTo(typeof(DisposableOptions))]
[assembly: TypeForwardedTo(typeof(EndianOptions))]
[assembly: TypeForwardedTo(typeof(EncodingOptions))]
[assembly: TypeForwardedTo(typeof(Endianness))]
[assembly: TypeForwardedTo(typeof(EnumStringOptions))]
[assembly: TypeForwardedTo(typeof(ExceptionCondition<>))]
[assembly: TypeForwardedTo(typeof(ExceptionHandler<>))]
[assembly: TypeForwardedTo(typeof(ExceptionHandler<,>))]
[assembly: TypeForwardedTo(typeof(ExceptionInvoker<>))]
[assembly: TypeForwardedTo(typeof(ExceptionInvoker<,>))]
[assembly: TypeForwardedTo(typeof(FallbackEncodingOptions))]
[assembly: TypeForwardedTo(typeof(FinalizeDisposable))]
[assembly: TypeForwardedTo(typeof(GuidFormats))]
[assembly: TypeForwardedTo(typeof(IAsyncOptions))]
[assembly: TypeForwardedTo(typeof(IConfigurableParser<>))]
[assembly: TypeForwardedTo(typeof(IConfigurableParser<,>))]
[assembly: TypeForwardedTo(typeof(IDecorator<>))]
[assembly: TypeForwardedTo(typeof(IEncodingOptions))]
[assembly: TypeForwardedTo(typeof(IParameterObject))]
[assembly: TypeForwardedTo(typeof(IParser))]
[assembly: TypeForwardedTo(typeof(IParser<>))]
[assembly: TypeForwardedTo(typeof(IPostConfigurableParameterObject))]
[assembly: TypeForwardedTo(typeof(IValidatableParameterObject))]
[assembly: TypeForwardedTo(typeof(Patterns))]
[assembly: TypeForwardedTo(typeof(PreambleSequence))]
[assembly: TypeForwardedTo(typeof(ProtocolRelativeUriStringOptions))]
[assembly: TypeForwardedTo(typeof(StreamDecoratorExtensions))]
[assembly: TypeForwardedTo(typeof(SuccessfulValue))]
[assembly: TypeForwardedTo(typeof(SuccessfulValue<>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TesterFunc<,,,,,,,,,,,,,,,,,>))]
[assembly: TypeForwardedTo(typeof(TypeArgumentException))]
[assembly: TypeForwardedTo(typeof(TypeArgumentOutOfRangeException))]
[assembly: TypeForwardedTo(typeof(UnsuccessfulValue))]
[assembly: TypeForwardedTo(typeof(UnsuccessfulValue<>))]
[assembly: TypeForwardedTo(typeof(UriScheme))]
[assembly: TypeForwardedTo(typeof(UriStringOptions))]
[assembly: TypeForwardedTo(typeof(Validator))]
#if !NETCOREAPP3_0_OR_GREATER
[assembly: TypeForwardedTo(typeof(CallerArgumentExpressionAttribute))]
#endif
2 changes: 1 addition & 1 deletion src/Cuemon.Core/Reflection/AssemblyContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ private static IEnumerable<Assembly> GetReferencedAssemblies(Assembly assembly,

private static bool TryPop(Stack<Assembly> stack, out Assembly assembly)
{
#if NET9_0_OR_GREATER
#if NET10_0_OR_GREATER
return stack.TryPop(out assembly);
#else
return Decorator.RawEnclose(stack).TryPop(out assembly);
Expand Down
2 changes: 1 addition & 1 deletion src/Cuemon.Core/Runtime/Dependency.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public abstract class Dependency : IDependency
{
private IEnumerable<IWatcher> _watchers;
private readonly Func<EventHandler<WatcherEventArgs>, IEnumerable<IWatcher>> _watchersHandler;
#if NET9_0_OR_GREATER
#if NET10_0_OR_GREATER
private readonly System.Threading.Lock _lock = new();
#else
private readonly object _lock = new();
Expand Down
2 changes: 1 addition & 1 deletion src/Cuemon.Core/Runtime/FileWatcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace Cuemon.Runtime
/// <seealso cref="Watcher" />
public class FileWatcher : Watcher
{
#if NET9_0_OR_GREATER
#if NET10_0_OR_GREATER
private readonly System.Threading.Lock _lock = new();
#else
private readonly object _lock = new();
Expand Down
2 changes: 1 addition & 1 deletion src/Cuemon.Core/Runtime/Watcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Cuemon.Runtime
/// </summary>
public abstract class Watcher : Disposable, IWatcher
{
#if NET9_0_OR_GREATER
#if NET10_0_OR_GREATER
private readonly Lock _lock = new();
#else
private readonly object _lock = new();
Expand Down
2 changes: 1 addition & 1 deletion src/Cuemon.Core/StringFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static class StringFactory
public static string CreateHexadecimal(byte[] value)
{
Validator.ThrowIfNull(value);
#if NET9_0_OR_GREATER
#if NET10_0_OR_GREATER
return Convert.ToHexString(value).Replace("-", "").ToLowerInvariant();
#else
return BitConverter.ToString(value).Replace("-", "").ToLowerInvariant();
Expand Down
Loading
Loading