Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.GetDataContractSerializer C# (CSharp) Метод

GetDataContractSerializer() публичный Метод

Gets the Data Contract serializer for a specific type. This method caches serializers so the performance can be improved when a serializer is used more than once.
The is null. The is null. The is null or whitespace.
public GetDataContractSerializer ( Type serializingType, Type typeToSerialize, string xmlName, string rootNamespace = null, List additionalKnownTypes = null ) : DataContractSerializer
serializingType System.Type The type that is currently (de)serializing.
typeToSerialize System.Type The type to (de)serialize.
xmlName string Name of the property as known in XML.
rootNamespace string The root namespace.
additionalKnownTypes List A list of additional types to add to the known types.
Результат System.Runtime.Serialization.DataContractSerializer
        public virtual DataContractSerializer GetDataContractSerializer(Type serializingType, Type typeToSerialize, string xmlName, string rootNamespace = null, List<Type> additionalKnownTypes = null)
        {
            Argument.IsNotNull("serializingType", serializingType);
            Argument.IsNotNull("typeToSerialize", typeToSerialize);
            Argument.IsNotNullOrWhitespace("xmlName", xmlName);

            var typeToSerializeName = typeToSerialize.GetSafeFullName(false);
            var key = string.Format("{0}|{1}", typeToSerializeName, xmlName);

            return _dataContractSerializersCache.GetFromCacheOrFetch(key, () =>
            {
#if ENABLE_DETAILED_LOGGING
                Log.Debug("Getting known types for xml serialization of '{0}'", typeToSerializeName);
#endif

                var serializerTypeInfo = new XmlSerializerTypeInfo(serializingType, typeToSerialize, additionalKnownTypes);

                GetKnownTypes(typeToSerialize, serializerTypeInfo);

                var knownTypesViaAttributes = GetKnownTypesViaAttributes(serializingType);
                foreach (var knownTypeViaAttribute in knownTypesViaAttributes)
                {
                    GetKnownTypes(knownTypeViaAttribute, serializerTypeInfo);
                }

                if (additionalKnownTypes != null)
                {
                    foreach (var additionalKnownType in additionalKnownTypes)
                    {
                        GetKnownTypes(additionalKnownType, serializerTypeInfo);
                    }
                }

                var xmlSerializer = new DataContractSerializer(typeToSerialize, xmlName, rootNamespace ?? string.Empty, serializerTypeInfo.KnownTypes);
                return xmlSerializer;
            });
        }
        #endregion

Same methods

DataContractSerializerFactory::GetDataContractSerializer ( Type serializingType, Type typeToSerialize, string xmlName, string rootNamespace, object serializingObject, List additionalKnownTypes = null ) : DataContractSerializer