Нужно ли контейнеру знать о типе содержимого? Если нет, то дженерики могут этого избежать - то есть Container<T>
, где вы можете использовать для использования Container<Entity>
. Кроме этого; вставка необходимых деталей в интерфейс (или базовый класс) в сборке, на которую могут ссылаться оба, является обычным подходом.
Лично я бы старался просто избегать того, чтобы ребенок знал о родителе.
Также; обратите внимание, что если вы do идете по маршруту абстракции (интерфейс и т. д.); это может иметь большое значение, если вы используете (например) сериализацию xml.
(редактировать комментарии)
ХОРОШО; во-первых: что является причиной циклической ссылки (в сборке); если нет, оставьте это в покое. Если есть проблема, вам понадобится дополнительный тип; предположительно некоторые интерфейсы для представления конкретных типов - то есть где Entity : IEntity
и EntityContainer
знают только о IEntity
(или vv с IEntityContainer
, или обоими),