Поддерживает ли MEF индивидуальный CTOR? - PullRequest
3 голосов
/ 24 октября 2009

Похоже, что MEF Framework создает объекты, которые имеют CTOR по умолчанию.Как насчет индивидуального CTOR или конструктора с параметрами?Например:

[Export (typeof(IInterface1))]
public class MyClass : IInterface1
{
    public MyClass(int id) {....}
    ....
}

Если нет, то я могу подумать, что можно передать объект как параметры в CTOR.Например:

открытый интерфейс IParameterID {public int Id {get;приватный набор;} ...}

Тогда CTOR будет:

public MyClass([Import(typeof(IParameter))] IParameterID id)
{ ... }

Не уверены, возможно ли добавить атрибут в параметры CTOR?И следующий вопрос: если MEF автоматически создаст экземпляр IParameter и вставит его в параметр CTOR?

1 Ответ

4 голосов
/ 24 октября 2009

Да, это возможно. Просто поместите [ImportingConstructorAttribute] в конструктор, который вы хотели бы использовать. Параметры будут автоматически рассматриваться как импортируемые, но если вам нужно изменить имя контракта для них, вы также можете добавить атрибут импорта для них.

...