기본적으로 ImportAttribute
은 정확히 한 부분이 속성에 지정된 계약을 충족해야합니다. 이 동작은 ImportAttribute.AllowDefault
속성을 사용하여 수정할 수 있습니다. 본질적으로 이는 0 개 또는 1 개의 파트가 계약을 만족할 수 있도록 동작을 변경합니다. 부품이 없으면 해당 가져 오기의 기본값이 대신 사용됩니다.ImportMany 속성을 사용할 때 적어도 하나의 부품을 가져 오도록 요구하려면 어떻게해야합니까?
ImportManyAttribute
은 0 개 이상의 부품이 계약을 체결 할 수 있도록합니다. MEF는 빈 콜렉션, 싱글 톤 콜렉션 또는 찾은 것에 따라 파트 세트를 사용하여이 가져 오기를 만족시킵니다.
MEF에게 빈 콜렉션이 유효하지 않다고 어떻게 말합니까?
내가해야 :
IPartImportsSatisfiedNotification
를 구현하고 컬렉션이 비어있는 경우OnImportsSatisfied
에서 예외를 던져?- 내 구현
ImportOneOrMoreAttribute
을 구현 하시겠습니까? - 어떻게 든 놓치고있는 MEF의 기능을 사용하십시오.
저는 마지 못해 현실을 받아들입니다. ( –
이것은 우울증입니다. 희망적으로 그들은 미래에 OneOrMore를 추가합니다. – Contango