GetRequiredElementValue
GetRequiredElementValue<T>(XmlNode, String, String, Object)
Возвращает значение из XmlNode, содержащееся в элементе по указанному пути. Если элемент отсутствует, будет возвращено исключение.
public static T GetRequiredElementValue<T>(XmlNode node,
string path,
string name,
object targetObject)
Параметры
node
System.Xml.XmlNode
Узел XmlNode, содержащий нужный элемент.
path
System.String
Путь до нужного элемента.
name
System.String
Имя объекта, в котором происходит получение значения.
targetObject
System.Object
Класс объекта, в котором происходит получение значения.
Возвращает
T
defaultValue
, если элемент отсутствуют; в противном случае - значение нужного элемента.
Исключения
InvalidXmlException
Если в описании узла node
отсутствует элемент по пути path
или его атрибут attribute
.
GetRequiredElementValue<T>(XmlNode, String, String, Object, String)
Возвращает значение из XmlNode, содержащееся в элементе по указанному пути. Если элемент отсутствует, будет возвращено исключение, сообщение которого будет дополнено переданным текстом.
public static T GetRequiredElementValue<T>(XmlNode node,
string path,
string name,
object targetObject,
string additionalMessage)
Параметры
node
System.Xml.XmlNode
Узел XmlNode, содержащий нужный элемент.
path
System.String
Путь до нужного элемента.
name
System.String
Имя объекта, в котором происходит получение значения.
targetObject
System.Object
Класс объекта, в котором происходит получение значения.
additionalMessage
System.String
Дополнительное сообщение, которое будет добавлено в текст исключения.
Возвращает
T
defaultValue
, если элемент отсутствуют; в противном случае - значение нужного элемента.
Исключения
InvalidXmlException
Если в описании узла node
отсутствует элемент по пути path
или его атрибут attribute
.
Примечания
Вы можете использовать этот метод, чтобы дополнить текст сообщения об ошибке информацией, раскрывающей суть обязательного элемента. Таким образом, сообщения об ошибках будут полными и заменять документацию.
Примеры
В следующем примере извлекается значение тэга <Text>
, вложенного в тэг <SettingsSqlQuery>
:
XmlParser.GetRequiredElementValue<string>(
node, "SettingsSqlQuery/Text", Name, this,
"В элементе SettingsSqlQuery указывается текст запроса на получение настроек.");
В метод GetRequiredElementValue последним параметром передается дополнительное сообщение, которое будет добавлено в текст исключения.
Описание команды типа MyCommand в xml-файле:
<Command Name="MyCommand" Type="MyCommand" Assembly="TemplateEngine">
<SettingsSqlQuery>
<Text>
SELECT smtp_server, smtp_port
FROM template.settings
LIMIT 1;
</Text>
</SettingsSqlQuery>
</Command>
Last updated