protected T ReadOptional <T>(string elementName, string elementNamespace, ReadElement <T> readFunction, XmlReader reader) { if (elementName == null) { throw new ArgumentNullException(nameof(elementName)); } if (reader == null) { throw new ArgumentNullException(nameof(reader)); } if (readFunction == null) { throw new ArgumentNullException(nameof(readFunction)); } if (!reader.IsStartElement(elementName, elementNamespace)) { return(default(T)); } else { T result = readFunction.Invoke(reader); return(result); } }
protected T1 ReadOptionalAbstract <T1, T2>(string elementName, string elementNamespace, ReadElement <T2> readFunction, XmlReader reader) where T1 : T2 { if (elementName == null) { throw new ArgumentNullException(nameof(elementName)); } if (reader == null) { throw new ArgumentNullException(nameof(reader)); } if (readFunction == null) { throw new ArgumentNullException(nameof(readFunction)); } if (!reader.IsStartElement(elementName, elementNamespace)) { return((T1)default(T2)); } else { T1 result = (T1)readFunction.Invoke(reader); return(result); } }
protected T ReadRequired <T>(string elementName, string elementNamespace, ReadElement <T> readFunction, XmlReader reader) { if (elementName == null) { throw new ArgumentNullException(nameof(elementName)); } if (reader == null) { throw new ArgumentNullException(nameof(reader)); } if (readFunction == null) { throw new ArgumentNullException(nameof(readFunction)); } if (!reader.IsStartElement(XacmlConstants.ElementNames.ActionAttributeDesignator, this.Version.NamespacePolicy)) { T result = readFunction.Invoke(reader); return(result); } else { throw new XmlException(elementName + " is required"); } }