Есть две основные причины, по которым я могу это сделать:
1) Потокобезопасность - класс PropertyInfoManager представляет собой статическую оболочку вокруг словаря, которая позволяет регистрировать PropertyInfo (s) для типа иПолучите PropertyInfo (s) для Типа.Он обеспечивает блокировку для обеспечения безопасности потока.
2) Отмена N-уровня - эта функция CSLA значительно усложняет хранение значений полей, а защищенный FieldManager отвечает за поддержание значений всех управляемых полей поддержки дляBusinessBase.Для этого классу FieldDataManager необходим доступ к PropertyInfo (ам) типа, поэтому лучше использовать их в одном месте, а не передавать какой-либо список из BusinessBase.
В этом случае FieldDataManager и PropertyInfoManagerклассы добавляют модульность, и я уверен, что на них повлияли разделение интересов (SoC) и принцип единой ответственности (SRP).
Я также изучаю CLSA и при этом довольно много узнал оОбъектно-ориентированный дизайн от самого фреймворка.Я бы порекомендовал The Book и чтение Исходный код , чтобы продолжить изучение CSLA .Net.