System.Xml.Serialization.XmlSerializer.CanDeserialize C# (CSharp) Method

CanDeserialize() public method

public CanDeserialize ( System.IO.XmlReader xmlReader ) : bool
xmlReader System.IO.XmlReader
return bool
        public virtual bool CanDeserialize(XmlReader xmlReader)
        {
            if (_primitiveType != null)
            {
                TypeDesc typeDesc = (TypeDesc)TypeScope.PrimtiveTypes[_primitiveType];
                return xmlReader.IsStartElement(typeDesc.DataType.Name, string.Empty);
            }
#if !NET_NATIVE
            else if (_tempAssembly != null)
            {
                return _tempAssembly.CanRead(_mapping, xmlReader);
            }
            else
            {
                return false;
            }
#else
            if (this.innerSerializer != null)
            {
                return this.innerSerializer.CanDeserialize(xmlReader);
            }
            else
            {
                return ReflectionMethodEnabled;
            }
#endif
        }

Usage Example

Ejemplo n.º 1
0
        public void AddFile(string fileName)
        {
            if (!File.Exists(fileName))
            {
                throw new DeviceDetectorException("Specified browser file doesn't exist", new FileNotFoundException(string.Empty, fileName));
            }

            if (String.Compare(Path.GetExtension(fileName), ".browser", true) != 0)
            {
                throw new DeviceDetectorException("Specified file has invalid extension");
            }

            using (XmlReader xmlReader = XmlReader.Create(fileName))
            {
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(browsers));
                if (!xmlSerializer.CanDeserialize(xmlReader))
                {
                    throw new DeviceDetectorException("Invalid file format");
                }

                try
                {
                    browsers browsersFile = xmlSerializer.Deserialize(xmlReader) as browsers;
                    string keyName = Path.GetFileNameWithoutExtension(fileName);
                    if (!this.browserFiles.ContainsKey(keyName))
                    {
                        this.browserFiles.Add(keyName, browsersFile);
                    }
                }
                catch (InvalidOperationException ex)
                {
                    throw new DeviceDetectorException("Cannot parse specified file \"" + fileName + "\"", ex);
                }
            }
        }
All Usage Examples Of System.Xml.Serialization.XmlSerializer::CanDeserialize