private void AddSystemType <T>(string typeName) { var typeDefinition = schemaDefinitionProvider.GetSimpleTypeDefinition <T>(typeName); if (typeDefinition.Type != null && !runtimeTypeDefinitions.ContainsKey(typeDefinition.Type)) { runtimeTypeDefinitions.Add(typeDefinition.Type, typeDefinition); } if (typeDefinition.Name != null && !schemaTypeDefinitions.ContainsKey(typeDefinition.Name)) { schemaTypeDefinitions.Add(typeDefinition.Name, typeDefinition); } }
private void AddSystemType <T>(string typeName, Func <TypeDefinition, ITypeMap> createTypeMap) { var typeDefinition = schemaDefinitionProvider.GetSimpleTypeDefinition <T>(typeName); var typeMap = GetCustomTypeMap(typeDefinition.TypeMapType) ?? createTypeMap(typeDefinition); if (typeDefinition.Type != null) { runtimeTypeMaps.TryAdd(typeDefinition.Type, typeMap); } var collectionDefinition = schemaDefinitionProvider.GetCollectionDefinition(typeDefinition); var arrayTypeMap = GetCustomTypeMap(collectionDefinition.TypeMapType) ?? new ArrayTypeMap <T>(this, collectionDefinition, typeMap); if (collectionDefinition.Type != null) { runtimeTypeMaps.TryAdd(collectionDefinition.Type, arrayTypeMap); } if (typeDefinition.Name != null) { xmlTypeMaps.TryAdd(typeDefinition.Name, Tuple.Create(typeMap, arrayTypeMap)); } }