У меня есть проект, в котором я должен создать иерархию объектов с использованием веб-API, сродни базе данных, например, мне нужно создать типы объектов базы данных, которые будут содержать таблицы, которые, в свою очередь, будут содержать столбцы.Каждый объект создается путем вызова веб-службы, которая затем возвращает свой уникальный идентификатор.Я сохраняю всю эту информацию, добавляя каждый объект в список на случай, если в процессе возникнет ошибка.
List<object> dbObjects = new List<object>();
Проблема возникает, когда возникает исключение, и мне нужно выполнить откат.Мне нужно просмотреть список и попытаться удалить их один за другим, где мой запрос поднимает свою уродливую голову.Нет никаких интерфейсов или общности, кроме идентификатора объекта.
Я бы хотел сделать следующее:
foreach (object dbObject in dbObjects )
{
_webApi.DeleteObject <typeof(object)>(object.id);
}
Но вы не можете или даже:
foreach (object dbObject in dbObjects)
{
switch (dbObject.GetType())
{
case typeof(Database):
Database db = dbObject as Database
_webApi.DeleteObject <Database>(db.id);
break;
case typeof(Table):
Table db = dbObject as Table;
_webApi.DeleteObject<Table>(db.Id);
break;
default:
break;
}
}
но вы не можете.Будем очень благодарны за любые идеи о том, как изящно реализовать этого ребенка требования.
Stu.