Как ограничить доступ к свойству класса в одном и том же пространстве имен? Рассмотрим следующий класс. Класс Content не может публиковать сам, вместо этого класс ContentService
перед изменением состояния на опубликованное сделаю несколько вещей.
public class Content : Entity, IContent
{
public string Introduction { get; set; }
public string Body { get; set; }
public IList<Comment> Comments { get; set; }
public IList<Image> Images { get; private set; }
public State Status { get; }
}
public class ContentService
{
public IContent Publish(IContent article)
{
//Perform some biz rules before publishing
article.Status = State.Published;
return article;
}
}
Как я могу сделать так, чтобы только класс ContentService мог изменить состояние статьи?
Существуют ли какие-либо схемы, которые помогут мне справиться с этим?