MEF Условный импорт - PullRequest
       1

MEF Условный импорт

3 голосов
/ 24 марта 2011

Возможно ли, или где я должен искать хук расширения для определения условного импорта в MEF?

Сортировка инверсии необязательного импорта (AllowDefault=true). У меня есть импорт свойств, и я не хочу выбрасывать текущее значение, если оно уже установлено.

Приветствия

Ответы [ 2 ]

4 голосов
/ 24 марта 2011

Если вы установили импорт для свойства только для набора, вы можете делать с ним все, что захотите.

public class Foo
{
    [Import]
    private object ImportData { set { if(this.Data == null) this.Data = value } }

    public object Data { get; set; }
}
1 голос
/ 24 марта 2011

MEF не поддерживает что-то подобное. Вы можете написать свойство, которое игнорирует любые наборы после первого ненулевого:

private IContract _import;
[Import]
public IContract Import
{
    get { return _import; }
    set
    {
        if (_import == null)
        {
            _import = value;
        }
    }
}

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

...