In order to completely control the serialization, allow the user to specify the DataContract namespace for generated types.
The DSL should know all declared types allowed, and be able to reference them without writing the fully qualified type name.
Commands and Domain Events should then have DataContract namespaces corresponding to the bounded context's name.
Support for Identifiers like @event
and other reserved C# keywords.
Currently, this is emitted only for single-field types.
Allow a way to configure the DebuggerDisplay on the generated types, e.g.
declaring a way to generate [DebuggerDisplay("{FirstName} {LastName}")]
on a value type, (defvaluetype StudentName (string FirstName, string LastName))
.
Commands and Domain events should only be able to have properties that are primitive types, arrays of these or other Data Transfer Objects.
E.g. for multi-dimensional arrays in Equality.
Currently one single-dimensional arrays are supported when generating equality members. Implement these, too:
(namespace TestCases.TypeDeclarations
(defcommand PrintArraySimple2D (int[,] Value))
(defcommand PrintArraySimpleMulti (int[][,] Value))
Currently, the ToString does not expand and print the values of arrays in the generated ToString method. Add this (see GeneratedValueTypeWithArrayTest for ToString).