У меня есть бизнес-объекты, как показано ниже,
class Class1
{
List<Class2> classes = new List<Class2>();
public IEnumerable<Class2> Classes { get { return classes.AsEnumrable(); }
public void AddClass(Class2 cls)
{
classes.Add(cls);
}
}
class Class2
{
public string Property { get; set; }
}
Моя бизнес-логика требует, чтобы после добавления экземпляра Class2
с помощью метода AddClass
в верхнюю часть списка Classes
в Class1
никто не мог редактировать свойства экземпляров Class2
, добавленных ранее в список, только последний элемент в списке. список можно редактировать. Как мне это сделать?
Я пробовал IReadOnlyList, но похоже, что он связан с тем, чтобы сделать структуру списка нередактируемой, не предотвращая редактирование содержимого его элементов.
Class2
имел свойства только для чтения или какую-то блокировку/разблокировку для поведения редактирования. Вы также можете сделать его виртуальным и написать какой-нибудь прокси-класс, который предотвратит редактирование, но это не похоже на правильное архитектурное решение. Это не имеет ничего общего с типом коллекции, так как коллекция просто возвращает ссылки наClass2
объектов. - person Yeldar Kurmangaliyev   schedule 11.02.2018