- Introduced XmlSer class for XML serialization and deserialization.
- Added TypeMetaCache for caching type metadata and reflection information.
- Implemented various ITypeHandler implementations for handling different types (Primitive, Proxy, ISerializable, Collection, Object).
- Enhanced type resolution with TypeResolver to manage type lookups and conversions.
- Established a configuration class (XmlCfg) to manage serialization settings.
- Integrated support for handling graphs and references in serialized objects.
- Added extensive member processing and filtering based on attributes.
- Ensured compatibility with immutable collections and various data structures.
- Implemented detailed error handling and logging for serialization processes.
This commit updates logging to handle nullable value types and parameters.
The following changes were made:
- Updated the Value record to use '!' instead of '?' for nullability.
- Added '!' to the default Value.
- Added '!= null' checks to conditional assignment.
- Removed unnecessary nullable-disable compiler directives.
x) In `Imm.cs`, renamed the delegate parameter from `ZZOld` to `old` for clarity.
x) Also in `Imm.cs`, changed the property name from `ZZOld` to `Old_backing`. This change was made across multiple classes within the file, improving code readability by using a more descriptive name.
x) In `Log.cs`, removed unused imports (`System.Security.Cryptography.X509Certificates`, `System.Dynamic`, `System.Xml.Schema`, and `Microsoft.CodeAnalysis.CSharp.Syntax`) to clean up the codebase.
x) Updated `Config.cs` to include a new instance of `XmlFormatter2Cfg` with specified data structure and POD.
x) Renamed the `destroy()` method in `Log.cs` to `shutdown()`.
x) Modified the startup process in `Log.cs` to check if it's already running, providing an info log if true.
x) Changed the encoding for StreamWriter in `startup()` method to UTF8 and added buffer size.
x) Commented out error stream related lines in Log.cs as they are not being used currently.
x) Added exception handling when processing message headers in log events.
x) Added checks for null or whitespace strings before writing them into files or console. Trimmed any null characters from lines before writing them into files.
x) Removed unnecessary white spaces and commented code blocks.
x) The changes involve commenting out the `deferredLoader` related code in the `Resource.cs` file.
x) Specifically, the instantiation of `ImmDefLoad s_deferredLoad`, the creation and start of a new thread for `m_deferredLoader`, and the entire method `deferredLoader()` have been commented out.
x) This might be due to debugging or refactoring efforts where these parts are temporarily disabled. Further context is needed to understand why these specific lines were commented out.
x) This change also includes a check on the writer's state before deciding whether to write elements, improving robustness of the serialization process.
x) Introduced the 'Do' attribute to the XML formatter.
x) The 'Do' attribute is now fetched and checked before filtering fields and properties.
x) This change allows more granular control over serialization, as items marked with the 'Do' attribute will not be filtered out.
x) Adjusted formatting in some areas for consistency.
In this commit, several changes were made across different files:
- In `FSM.cs` and `Imm.cs`, the `[CallerArgumentExpression]` attribute was updated to reflect the correct argument names.
- The `ProcessWork` method in `Imm.cs` was changed from virtual to override.
- In `Log.cs`, the `[CallerArgumentExpression]` attribute was updated for clarity.
- A new override for the `GetHashCode()` method was added in `AddressStack.cs`.
- The version of "Microsoft.CodeAnalysis.CSharp" package reference was updated from 4.2.0 to 4.3.1 in 'SharpLib.csproj'.
These changes improve code readability and ensure that methods are correctly overridden where necessary. Also, updating the package version ensures compatibility with newer features or bug fixes provided by Microsoft's C# compiler platform.
x) Analyzed the file changes and diffs for imm/Imm.cs.
x) The changes involve removing extra lines of whitespace that were present in the code. This was done to improve readability and maintain a clean, consistent coding style.
x) No functional changes were made to the code, so no impact on functionality is expected.
x) Created a new file, Bitwise.cs, which includes two static methods for performing bitwise operations on enums.
x) The method `ByPointers_DirectInt` directly converts an enum value to its integer representation using unsafe code and pointer manipulation. This is useful when we need the exact binary representation of an enum.
x) The method `On` checks if a specific bit (represented by an enum value) is set in a given bitfield. It uses the `ByPointers_DirectInt` method to convert the enum value to its integer equivalent before performing the bitwise operation.
x) These changes provide more efficient ways of handling bitwise operations with enums in our codebase.
In the logging/Log.cs file, the parameter of the Thread.Sleep function has been changed from 0 to 1. This change is likely aimed at adjusting the pause duration for a running thread. The context suggests this is a temporary solution until a semaphore or mutex can be implemented as indicated by the existing TODO comment.
x) Refactor logging endpoints to use more concise method names
x) Implement implicit conversion for Value struct
x) Add direct callback functionality to log events
Merge 'origin/master' into mh/dev
x) Update SharpLib.csproj to target .NET 8.0
x) Add new SharpLib solution file for Visual Studio 17.5
x) Define project configurations in the solution file
x) Added enum for CommitResults
x) Created interface IID<TS>
x) Implemented DB class with lock, objects, committed lists
x) Updated lookup and checkout methods in DB class
x) Added TxStates enum and implemented Tx class with checkout, add, dispose methods
x) Implemented commit method in DB class to handle transactions efficiently
x) Add new logging events for GC and ThreadPoolWorkerThread
x) Implement method to extract method information from TraceEvent
x) Enhance log details display for specific event types
x) Improve time header format in log messages
x) Refactor verbose logging messages to include type friendly names