Можно ли получить имя параметра (где у меня parmName ниже)? Или, возможно, в коде MSIL есть только относительные позиции, без абсолютных имен парм?
У меня есть необычный случай использования HIP в Microsoft Host Integration Server. Когда поля имеют значение NULL и ошибка возвращается к CICS (на мэйнфрейме), возникает ошибка "CALL TO VERIFYINVOKEPARAMS FAILED". Я жестко запрограммировал решение, но пытался найти общее решение, которое подойдет для любой подпрограммы HIP.
Спасибо,
Нил Уолтерс
// check for null values in any of the parameters
MethodBase method = MethodBase.GetCurrentMethod();
//string key = method.Name + "(";
for (int i = 0; i < method.GetParameters().Length; i++)
{
if (method.GetParameters().GetValue(i).GetType() == typeof(String))
{
if (method.GetParameters().GetValue(i) == null)
{
string parmName = " Parm #" + i;
msg = "Value of return variable " + parmName + " is null (should be blanks)";
System.Diagnostics.EventLog.WriteEntry("LOGGER", msg,
System.Diagnostics.EventLogEntryType.Error);
}
}
}
Дополнительная информация: я звоню в BizTalk Orch, опубликованную как веб-сервис WCF. При получении ошибок некоторые поля не сериализуются обратно в вышеуказанную программу. Вот как значения должны быть NULL в первую очередь. Но приложение CICS/, которое вызывает мою HIS/HIP программу, не любит нули.