В одной строке используйте это после извлечения данных DataReader:
var fieldNames = Enumerable.Range(0, dr.FieldCount).Select(i => dr.GetName(i)).ToArray();
Затем
if (fieldNames.Contains("myField"))
{
var myFieldValue = dr["myField"];
...
Edit
Гораздо более эффективный однострочный что не требует загрузки схемы:
var exists = Enumerable.Range(0, dr.FieldCount).Any(i => string.Equals(dr.GetName(i), fieldName, StringComparison.OrdinalIgnoreCase));
В вопросе недостаточно информации, чтобы дать подробный ответ. Но я предполагаю, что вы используете ws: consumer для мыльных услуг. Чтобы добавить определенные заголовки мыла с помощью потребителя ws, используйте компонент set-property
и добавьте к заголовку мыло имя «.»
Например:
<set-property propertyName="soap.Authorization"
value="<auth>Bearer
MWYxMDk4ZDktNzkyOC00Z</auth>"/>
Дополнительная информация здесь: [112 ] https://github.com/mulesoft/mulesoft-docs/blob/master/mule-user-guide/v/3.9/web-service-consumer.adoc