for Different Frameworks

This outline details how customizations are applied to different frameworks, such as System.Text.Json or Dapper.

Configuration

  • deserializationStrictness - specifies how strict deserialization is, e.g. should your Validate method be called, or should pre-defined instances that otherwise invalid be allowed - defaults to DeserializationStrictness.AllowValidAndKnownInstances
  • debuggerAttributes - specifies the level that debug attributes are written as some IDEs don’t support all of them, e.g., Rider - defaults to DebuggerAttributeGeneration.Full which generates DebuggerDisplay and a debugger proxy type for IDEs that support them
  • comparison—species which comparison code is generated—defaults to ComparisonGeneration.UseUnderlying which hoists any IComparable implementations from the primitive

Integration

This topic is copied from Vogen and/or is incomplete. It is being worked on (or is planned to be worked on).
If you would like to help with this, please see the list of open issues.
Vogen integrates with other systems and technologies.
The generated Value Objects can be converted to and from JSON.
They can be used in Dapper, LinqToDB, and EF Core.
And it generates TypeConverter code, so that Value Objects can be used in things like ASP.NET Core MVC routes.
Integration is handled by the conversions parameter in the ValueObject attribute. The current choices are:

using System;
          
          namespace Vogen;
          

Top-Level Directory Explanations

samples/ - This directory contains example projects demonstrating the usage of Intellenum.

samples/Intellenum.Examples/ - Contains various example projects demonstrating different aspects of Intellenum, such as serialization, conversion, syntax examples, types, typical scenarios, and more.

samples/WebApplication/ - Contains a sample web application that uses Intellenum.

src/ - This directory contains the source code of the Intellenum library.

src/Benchmarks/ - Contains benchmark tests for the Intellenum library.

src/Intellenum.CodeFixers/ - Contains code fixers for the Intellenum library.

src/Intellenum.SharedTypes/ - Contains shared types used across the Intellenum library.

src/Intellenum/ - Contains the main source code for the Intellenum library. This directory is further divided into subdirectories for diagnostics, extensions, generators, member building, properties, rules, static constructor building, templates, and more.

tests/ - This directory contains test projects for the Intellenum library.

tests/AnalyzerTests/ - Contains unit tests for the Intellenum analyzer.

tests/ConsumerTests/ - Contains tests for consuming the Intellenum library.

tests/Intellenum.Tests/ - Contains additional tests for the Intellenum library.

tests/Shared/ - Contains shared test files.

tests/SnapshotTests/ - Contains snapshot tests for the Intellenum library.