Skip to content

Simplify.System 1.6.3

Choose a tag to compare

@i4004 i4004 released this 25 Jun 12:49
39022f1

Added

  • .NET 10 support

Fixed

  • WeakSingleton<T> was not fully thread-safe: the lock-free TryGetTarget fast path could race with target re-creation (WeakReference<T> instance members are not guaranteed thread-safe); reads and writes are now fully synchronized under a single lock
  • ApplicationEnvironment.Name, TimeProvider.Current, AssemblyInfo.Entry lazy initialization was not thread-safe (??=) and could return different instances under concurrent first access; initialization is now synchronized with double-checked locking
  • ObjectConverter<T> parameterless protected constructor left ConvertFunc null; Convert now guards against null with a descriptive exception
  • BytesExtensions.GetString silently dropped the last byte of an odd-length array; it now throws ArgumentNullException/ArgumentException instead of returning truncated data
  • AssemblyInfo.Title fallback resolved the name of the executing assembly (Simplify.System) instead of the wrapped assembly; it now returns the wrapped assembly name and no longer relies on Assembly.Location (empty in single-file/AOT)
  • DateTimeExtensions.TrimMilliseconds reset DateTimeKind to Unspecified; it now preserves the original Utc/Local/Unspecified kind