Я использовал атрибут InheritedExport, и у меня есть дерево объектов. Подумайте IMessageSender, где у меня есть SmtpSender, TextSender, HttpPostSender. Но через шаблон декоратора у меня есть дополнительные классы, которые также наследуют этот атрибут MEF InheritedExport.
Однако при составлении отправителей я не хочу, чтобы составители были составлены.
Теперь Lazy может помочь, тогда как я получаю только те объекты, которые не относятся к типу Decorator. Но я не могу спросить Ленивого, что такое T на самом деле. Возможно, метаданные могли бы помочь, но метаданные применяются только к объекту, который имеет эти метаданные. Я не хочу заставлять разработчиков (читай: разработчиков) добавлять правильные метаданные в их декоратор или отправителя.
Есть идеи? Спасибо!