Member 10582423 Ответов: 2

Как реализовать динамические свойства


Я работаю над проектом api для возврата различных ответов, таких как string, list, list<t> object ..etc.
Чтобы организовать свой ответ, я добавляю класс для генерации ответного сообщения, которое будет легко использовать.

Что я уже пробовал:

public class ResponseMessage {

        public string responseStatus { get; set; }
        public string responseMessage { get; set; }
        public IList responseDetail { get; set; }

}


В моем случае responseDetail должен быть динамичным и заполненным различными типами. Как лучше всего сделать что-то подобное с низким усилием кода ?

Есть ли какая-нибудь статья, объясняющая, что я должен делать в этом случае ?

Спасибо

2 Ответов

Рейтинг:
19

F-ES Sitecore

Если нет ничего общего между целевыми типами вам нужно будет использовать

List<object>


Рейтинг:
11

OriginalGriff

Я бы создал абстрактный класс (или интерфейс), который представляет собой "базовый тип" для объектов, которые могут быть включены в качестве responseDetail: выведите из него все типы, которые вам нужны (или ваши потребности пользователя API), и разрешите их в качестве вашего типа:

public abstract class ResponseDetail {}
public class ResponseMessage {
        public string responseStatus { get; set; }
        public string responseMessage { get; set; }
        public ResponseDetail responseDetail { get; set; }
}

public class ResponseDetailList : ResponseDetail
   {
   public List<string> Texts = new List<string>
   }

Таким образом, он расширяется, но все еще безопасен для печати.