Импорт зависимостей с использованием класса, унаследованного от Lazy <> - PullRequest
1 голос
/ 27 января 2011

Можете ли вы импортировать, используя класс, который наследуется от Lazy, а не от самого Lazy? Я экспортирую, используя производную ExportAttribute, которая содержит метаданные.

[FeatureExport(/* Feature Metadata Parameters */)]
public class Feature : IFeature
{
    // Feature Properties
}

public class FeatureReference : Lazy<IFeature, IFeatureMetadata>
{

}

public class Consumer
{
    [ImportMany]
    public IEnumerable<FeatureReference> FeatureReferences { get; set; }
}

Возможно ли это? Будет ли это работать? Я мог бы попробовать это сам, но я нахожусь в разработке, поэтому у меня фактически нет написанного кода.

1 Ответ

3 голосов
/ 27 января 2011

Нет, боюсь, это не сработает. Вам потребуется реализовать собственное расширение модели программирования (либо пользовательскую деталь / каталог, либо, возможно, через ReflectionModelServices), чтобы эта работа работала.

MEF должен был бы создать объект FeatureReference, чтобы установить его, и, учитывая, что FeatureReference может иметь любой мыслимый конструктор, можно догадаться, почему это не поддерживается.

...