コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: Serializer.cs プロジェクト: MuraStranger/XRoadLib
        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));
            }
        }