Exemple #1
0
    public RequestRootBase Deserialize(XmlReader reader)
    {
        if (!reader.ReadToFollowing(RequestRootElementName))
        {
            return(null);
        }
        if (!reader.ReadToFollowing(ActionElementName))
        {
            return(null);
        }
        var typeName = reader[TypeAttributeName];

        if (typeName == null)
        {
            return(null);
        }
        var type = BindToType(typeName);

        if (type == null)
        {
            throw new InvalidDataException();      // THROW AN EXCEPTION in this case
        }
        reader.ReadStartElement();
        var serializer = new XmlSerializer(type);
        var action     = serializer.Deserialize(reader);

        if (action == null)
        {
            return(null);
        }
        return(RequestRootHelper.CreateBase(action));
    }