Я работаю над программой, которая будет взаимодействовать с различными аппаратными средствами. Из-за различной природы элементов, которые он передает и контролирует, мне нужно иметь разные «драйверы» для каждого отдельного компонента оборудования. Это заставило меня подумать, что MEF станет отличным способом сделать эти драйверы плагинами, которые можно добавлять даже после выпуска продукта.
Я рассмотрел множество примеров использования MEF, но вопрос, на который я не смог найти ответ, заключается в том, как заполнить плагин MEF внешними данными (например, из базы данных). , Все примеры, которые я могу найти, имеют жестко запрограммированные «данные» в сборке, как в следующем примере:
[Export( typeof( IRule ) )]
public class RuleInstance : IRule
{
public void DoIt() {}
public string Name
{
get { return "Rule Instance 3"; }
}
public string Version
{
get { return "1.1.0.0"; }
}
public string Description
{
get { return "Some Rule Instance"; }
}
}
Что если я хочу, чтобы имя, версия и описание поступали из базы данных? Как бы я сказал MEF, где взять эту информацию?
Я могу упустить что-то очень очевидное, но я не знаю, что это такое.