- 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.