Allows the registration and retrieval of data type definitions. Used internally when a data type is processed via an attribute, and can be used by consuming code to register data types which cannot be decorated with an attribute. For example one could register a DataTypeRegistration for an enum from the .NET Framework, for a complex type from a library or indeed for any type whose source code is not controlled by the caller. A registration made explicitly via a call to Register will always take precedence over values specified in a [DataType] attribute. If a data type is used for a property which specifies its own alias, data type name or converter in its property attribute then these settings take precedence over both the registration and the data type attribute.
        public void Initialise(IEnumerable <Type> classes)
        {
            _register = new DataTypeRegister(out _registerController, _service);

            if (CodeFirstManager.Current.Features.UseBuiltInPrimitiveDataTypes)
            {
                RegisterNvarcharType <string, PassThroughConverter <string> >(BuiltInDataTypes.Textbox);
                RegisterIntegerType <bool, BoolTrueFalseConverter>(BuiltInDataTypes.TrueFalse);
                RegisterIntegerType <int, PassThroughConverter <int> >(BuiltInDataTypes.Numeric);
                RegisterDateTimeType <DateTime, PassThroughConverter <DateTime> >(BuiltInDataTypes.DatePickerWithTime);
            }

            if (DeferredRegistrations != null)
            {
                DeferredRegistrations.Invoke(this);
            }

            List <System.Threading.Tasks.Task> tasks = new List <System.Threading.Tasks.Task>();

            if (CodeFirstManager.Current.Features.UseConcurrentInitialisation)
            {
                InitialiseTypesConcurrent(classes, tasks);
            }
            else
            {
                InitialiseTypes(classes, tasks);
            }
        }
 internal DataTypeRegisterController(DataTypeRegister instance)
 {
     _instance = instance;
 }
 internal DataTypeRegisterController(DataTypeRegister instance)
 {
     _instance = instance;
 }