Я столкнулся с этой проблемой определенным образом.
У меня есть класс CategoryViewModel, у которого есть свойство Category, которое я хочу, чтобы частный доступ только для чтения:
public CategoryViewModel
{
private Category { get; }
}
На самом деле, я хочу, чтобы он экспортировался как доступный только для чтения в другой класс. Однако я не могу сделать такую вещь.
В моем случае (может быть, это поможет некоторым другим парням), я хочу добавить его в репозиторий. Единственный способ, который я нашел, - это использовать функцию с хранилищем в качестве параметра 1 и действие в качестве параметра 2:
public void ApplyAction(ICategoryRepository repo, Action<ICategoryRepository, Category> action)
{
action(repo, Category);
}
Таким образом, из других мест, я могу сделать такую вещь:
categoryViewModel.ApplyAction(_repository, (r, c) => r.MarkForInsertOrUpdate(c));
Это может помочь другим раскрыть там свойство только в определенных случаях и может управлять ими.