решил, что я мог бы также попытаться ответить на этот вопрос и для вас. Исходя из моего опыта, я бы сказал, что то, что вы описываете выше, недоступно в базовой структуре CAB / SCSF.
RootWorkItem содержит коллекцию дочерних WorkItems, которые создаются вашим приложением для обработки конкретного сценария использования. Каждый WorkItem содержит коллекцию интеллектуальных частей, и вы можете проверить, содержит ли WorkItem определенный SmartPart, используя методы Get или Contains, представленные в коллекции WorkItem.SmartPart.
Хотя я согласен с вами, что внедрение RootWorkItem во все немного «затянуто», если вы используете базовый класс WorkItemController для ваших WorkItems (что вам следует), то это делается для вас в базовом классе.
В качестве возможного решения вы могли бы расширить базовый класс WorkItemController с помощью какого-либо метода FindSmartPart, который мог бы проходить через коллекцию WorkItem класса RootWorkItem и искать SmartPart с использованием вышеупомянутых методов.
Надеюсь, это поможет.