Предоставление каждому плагину ссылки на Kinect может быть не очень хорошей идеей. Таким образом вы заставите каждый плагин знать API Kinect (или вашу оболочку). Хуже того, каждый плагин потенциально может изменить состояние датчика Kinect на что-то, что подходит для этого плагина, но поскольку никакие два плагина не должны ничего знать друг о друге, изменяя состояние общего ресурса, такого как датчик kinect, может быть винт любого другого плагина. Не говоря уже о том, что вам нужно будет добавить механизм уведомления плагинов об изменении состояния датчика Kinect. Я надеюсь, что вы начинаете видеть головные боли, связанные с этим подходом.
Вместо того, чтобы давать каждому плагину ссылку на Kinect, я бы рекомендовал сделать противоположное. А именно, предоставить централизованный плагин Kinect доступ к каждому плагину, который хочет использовать датчик Kienct. Более конкретно, вы можете создать класс подключаемого модуля kinect, который [ImportMany] представляет собой набор классов IKinectClient. Затем всякий раз, когда видеокадр готов, или распознается речевой термин, или что-то еще происходит, плагин Kinect может запускать делегата в каждом плагине IKinectClient, который заинтересован (зарегистрирован), чтобы получить уведомление об этом событии. Таким образом, вы сохраняете централизованное место для своего действительного кода Kinect, и любые изменения, которые необходимо внести в то, как ваше приложение взаимодействует с датчиком Kinect и / или Kinect SDK, централизованы в одном классе. Это сила Инверсии Контроля!
ПРИМЕЧАНИЕ. В качестве примера я дал IKinectClient для интерфейса, который могут поддерживать ваши интерфейсы, связанные с kinect. В действительности вы, вероятно, не захотите использовать один большой интерфейс для всех взаимодействий Kinect. Вместо этого вы захотите отделить свои внутренние поверхности. например IKinectSpeechClient, IKinectVideoClient, IKinectGestureClient, т. Д.
С этим appraoch, клиентские плагины Kinect не должны ничего знать о самом Kinect, и при этом им не нужно ничего знать о Kinect API (укажите скорость, с которой выходят Kinect для Windows SDK, это главный плюс).
Я уже работал над этой проблемой и писал об этом здесь:
http://beachfrontcoding.tumblr.com/post/7339567531/kinectaudiopluginforsoapboxcore
Удачи