MEF не поддерживает что-то подобное. Вы можете написать свойство, которое игнорирует любые наборы после первого ненулевого:
private IContract _import;
[Import]
public IContract Import
{
get { return _import; }
set
{
if (_import == null)
{
_import = value;
}
}
}
Я не уверен, каков вариант использования этого, поэтому я не уверен, поможет ли это вам. MEF не устанавливает импорт более одного раза, за исключением повторного импорта при перекомпоновке.