В ваших коллекциях нет есть, которые всегда должны быть прочитаны. Это зависит от того, для чего предназначен этот список.Если это действительно просто список ссылок, вы можете даже вернуть IEnumerable
, а не ReadOnlyCollection
, если вам явно не нужна сборка только для чтения.
Чтобы сделать это только для чтения коллекции я хотел бы сделать:
private List<Product> products = new List<Product>();
public ReadOnlyCollection<Product> Products { get { return products.AsReadOnly(); } }
Там нет необходимости, чтобы обернуть метод AsReadOnly
с new ReadOnlyCollection
заявлением. В качестве альтернативы вы можете сделать:
public ReadOnlyCollection<Product> Products { get { return new ReadOnlyCollection<Product>(products); } }
Однако, я бы просто пойти с вызовом AsReadOnly
, как я думаю, что внутренне он просто будет оборачивать список для вас в любом случае.
поэтому, по сути, убедитесь, что вы не пытаетесь изменить список из этого «конца» отображения, вам нужно изменить его на конце, где вы установили cascade = update/save/etc. и inverse = ложный ? – mrblah
Да. Это способ контролировать точку доступа, через которую вы можете изменить коллекцию. – LBushkin