На странице http://msdn.microsoft.com/en-us/library/dd468057.aspx Я читал, что все свойства навигации, для которых я хотел бы иметь прокси-сервер отслеживания изменений, должны быть public и virtual. Насколько я понимаю, CLR динамически создает подклассы моих POCO и повторно реализует свойства для обеспечения запрошенного поведения.
Для этого я понимаю, что свойство должно быть virtual и что оно должно иметь доступность protected или выше. Однако, если я хочу использовать их для удобства в сборке, но не хочу раскрывать их, я предпочитаю, чтобы они не были public. Что приводит меня к двум вопросам.
(насколько я понимаю, что происходит), почему среда выполнения требует, чтобы свойства были
public, а неprotectedилиinternal?(для моей реальной ситуации) существуют ли какие-либо обходные пути, чтобы скрыть свойство навигации, но при этом сохранить поведение отслеживания изменений?