Этот вопрос относится к использованию MEF.
Я хочу предоставить разные значения для одного и того же импорта в этих двух сценариях
[Export("A1", typeof(IA))]
[Export("A2", typeof(IA))]
class A : IA
{
[Import("B")]
public IB B;
}
[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(typeof(IA))]
class A : IA
{
[Import]
public IB B;
}
В обоих приведенных выше сценариях я хочу удовлетворить импорт IB
с разными значениями, то есть когда я делаю это в первом типе экспорта
var a1 = Container.GetExportedValue<IA>("A1");
var a2 = Container.GetExportedValue<IA>("A1");
или это во втором экспорте
var a1 = Container.GetExportedValue<IA>();
var a2 = Container.GetExportedValue<IA>();
Я хочу, чтобы два экземпляра A a1
и a2
имели разные значения IB
. Я не хочу использовать ImportMany
, потому что тогда я должен решить, какой из них выбрать, и я хочу не допустить эту логику в класс A
.
Два сценария, связанные с этим экспортом, состоят в том, что я хочу иметь общее универсальное представление для работы с различными типами моделей представлений, реализующих некоторый интерфейс и различные экземпляры класса, который предоставляет некоторую службу, которая должна быть настроена с различными параметрами конфигурации. 1020 *