Я написал программу, которая делает работу с файлами, такими как удаление и обновление, магазин и поиск И все клиенты, сотрудники и порядок ...Трудного Deserialize Метод IndexOutOfRangeException
Но моя проблема с методом десериализации и знает, когда это называется я получаю эту ошибку:
IndexOutOfRangeException
Я попробовал метод Try Поймайте, но это делает программа медленно п снижает его эффективность
public T Deserialize<T>(string entity)
{
var obj = Activator.CreateInstance<T>();
var stringProps = entity.Split(',');
var objProps = obj.GetType().GetProperties();
var propIndex = 0;
for (int i = 0; i < stringProps.Length - 1; i++)
{
try
{
if (objProps[propIndex].PropertyType.FullName == "System.String")
{
objProps[propIndex].SetValue(obj, stringProps[i], null);
}
else if (objProps[propIndex].PropertyType.FullName == "System.Int32")
{
objProps[propIndex].SetValue(obj, Convert.ToInt32(stringProps[i]), null);
}
else if (objProps[propIndex].PropertyType.FullName == "System.DateTime")
{
var cultureInfo = new CultureInfo("fa-IR");
DateTime dateTime = Convert.ToDateTime(stringProps[i], cultureInfo);
objProps[propIndex].SetValue(obj, dateTime, null);
}
else if (objProps[propIndex].PropertyType.FullName == "System.boolean")
{
objProps[propIndex].SetValue(obj, Convert.ToBoolean(stringProps[i]), null);
}
else
{
i--;
}
propIndex++;
}
catch (IndexOutOfRangeException)
{
Debug.WriteLine("Index Out Of range");
}
}
return obj;
}
Так в чем ваш вопрос? Вы хотите исправить свою программу, чтобы она работала и больше не выбрасывает это исключение? Или вы в порядке с исключением и просто хотите справиться с этим более эффективно? Если последнее, то вы можете просто иметь пустой 'catch'. Я подозреваю, однако, что у вас есть логическая ошибка, и вам нужно это исправить. –
Да, вы хотите исправить вашу программу, чтобы она работала и больше не выбрасывает это исключение. –
Редактировать свой вопрос. Покажите примерный класс, который вы хотите инициализировать, и покажите пример данных, которые вы пытаетесь десериализовать. Покажите определение класса и содержимое массива 'stringProps'. –