Родовое население разных учеников
Я работаю над приложением веб-службы с несколькими (11) вызовами веб-службы.
Для каждого веб-сервиса мне нужно заполнить Soap Body из массива строк следующим образом:
if (aMessage[(int)DCSSCustomerUpdate_V3.Branch].ToString().Length != 0)
{
wsSoapBody.Branch = aMessage[(int)DCSSCustomerUpdate_V3.Branch].ToString();
}
aMessage[int]
это строковый массив, а [int] определяется перечисляемой константой - в этом случае она определяется следующим образом:
private enum DCSSCustomerUpdate_V3
{
MsgType = 0,
MsgVersion = 1,
WSName = 2,
ReplyTo = 3,
SourceSystem = 4,
...
}
Имена свойств в частичном классе совпадают с перечисляемой константой, так что, я думаю, я бы также передал перечислимую константу?
частичный класс определяется в wsdl следующим образом:
public partial class DCSSCustomerUpdateType
{
private string instIdField;
private string branchField;
...
}
Вместо того, чтобы делать это для каждого отдельно (в каждом из 11 пользовательскихоказание услуг классы), интересно, есть ли способ пройти в частичном классеwsSoapBody (вместе со строковым массивом) и перебрать всех членов класса, присваивая значения из строкового массива?
РЕДАКТИРОВАТЬ:
Я искал и нашелSO: 531384 / как пройти через все свойства класса?
Итак, я попробовал это:
public static void DisplayAll(Object obj, string[] aMessage)
{
Type type = obj.GetType();
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo property in properties)
{
string value = aMessage[property.Name].ToString();
System.Diagnostics.Debug.WriteLine("Name: " + property.Name + ", Value: " + property.GetValue(obj, null));
}
}
ноstring value = aMessage[property.Name].ToString();
не будет компилироваться - так как он ищет int, возвращаемый из перечисленной константы ...
так куда мне идти оттуда?