MEF를 DI 컨테이너로 사용하는 IoC 랩퍼가 있습니다. 랩퍼의 적용 가능한 스니 j이 아래에 나와 있습니다.비 기여 수입에 대해 RequiredCreationPolicy를 지정하십시오.
public static bool TryGetComponent<T>(out T component)
{
CompositionContainer container = RetrieveContainer();
T retrievedComponent = container.GetExportedValueOrDefault<T>();
if (retrievedComponent.Equals(default(T)))
{
component = default(T);
return false;
}
component = retrievedComponent;
return true;
}
CompositionContainer에서 내 보낸 구성 요소의 대부분은 CreationPolicy를 "Any"로 지정합니다.
[PartCreationPolicy(CreationPolicy.Any)]
내가 만드는 유형의 경우 MEF가 내 보낸 형식을 비공유 인스턴스로 제공하기 위해 다음 가져 오기 특성을 쉽게 사용할 수 있습니다.
[Import(RequiredCreationPolicy = CreationPolicy.NonShared)]
하지만, 내 IOC의 래퍼도 클래스에 의해 사용되어야하기 때문에 MEF 또는 가져 오기 속성의 중 하나를 사용하지 않고 인스턴스를 수출 유형을 얻기 위해 내 IOC의 API를 사용해야합니다. 프로그래밍 방식으로 CompositionContainer를 GetExports 및 GetExportedValues에 사용할 때 CreationPolicy를 지정하는 방법이 필요합니다.. 가져 오기 속성을 사용하지 않고도이 작업을 수행 할 수 있습니까?
감사합니다 웨스,이 정확히 내가 뭘 찾고 있어요. – Xacron