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 yourValidate
method be called, or should pre-defined instances that otherwise invalid be allowed - defaults toDeserializationStrictness.AllowValidAndKnownInstances
debuggerAttributes
- specifies the level that debug attributes are written as some IDEs don’t support all of them, e.g., Rider - defaults toDebuggerAttributeGeneration.Full
which generatesDebuggerDisplay
and a debugger proxy type for IDEs that support themcomparison
—species which comparison code is generated—defaults toComparisonGeneration.UseUnderlying
which hoists anyIComparable
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.