/// <summary> /// Adds the direct definition. /// </summary> /// <param name="definition">The definition.</param> public void AddDirectDefinition(DirectTypeDefinition definition) { _directTypes[definition.DirectType] = definition; _wrappedDirectTypes.Add(definition.WrappedDirectType); var typeInfo = definition.TypeInfo; _directSignatures.Add(new PathInfo(typeInfo.TypeName).Signature); }
/// <summary> /// Initialize important type systems definitions. /// </summary> private void initializeTypeSystemBase() { //null support var nullDefinition = new DirectTypeDefinition <Null>(); nullDefinition.ForcedInfo = Null.TypeInfo; AddDirectDefinition(nullDefinition); //support for System.Object var chain = new InheritanceChain(TypeDescriptor.Create <object>(), new InheritanceChain[0]); _inheritanceChains.Add(chain.Path.Signature, chain); //support for Array var arrayDefinition = new DirectTypeDefinition(typeof(Array <>)); arrayDefinition.ForcedInfo = TypeDescriptor.ArrayInfo; AddDirectDefinition(arrayDefinition); }