Book
класс зависит от MongoDb во время компиляции. Однако, поскольку вы использовали только атрибуты из MongoDb, Book
не зависит от MongoDb во время выполнения.
Это означает, что когда объектный код для Book загружен в CLR, и если dll MongoDb не найден, вы не получите TypeLoadException
. В C # (также в Java), когда dll, где определен атрибут, не найден во время загрузки, нет исключения. Атрибут dll будет загружен по желанию, когда найден.
Таким образом, это означает, что вы можете использовать книгу в среде, где MonogoDb не может быть загружен. Вы можете распространять dll-содержащую книгу без зависимости от MongoDb. Зависимость существует только во время компиляции, и об этой зависимости определенно заботятся, если вы кодируете компиляцию.
Теперь иметь идентичный класс без атрибута было бы слишком большой работой для почти ничего.