인스턴스와 System.Composition MEF ImportingConstructor을 수행하는 방법 Common.Logging에서 log = LogManager.GetLogger<ITranslator>();
을 통해 사용할 수 있지만 이것을 구성 컨테이너에 어떻게 플러그인합니까?</p>이 <pre><code>[Export(typeof(ITranslator))] public class ATranslator : BaseTranslator { [ImportingConstructor] public ATranslator(ILog log) { ... } </code></pre> <p>로거 인스턴스는, 내가 MEF (nuget에서 System.Composition) + Common.Logging를 사용하여 예를 들어 ILOG를 호출 클래스를 가지고있어
var container = new ContainerConfiguration()
.WithAssembly(typeof(ITranslator).Assembly)
.CreateContainer();
container.SatisfyImports(this);
그래서 내가 할 수있는
[ImportMany]
private IEnumerable<ITranslator> Translators { get; set; }
System.Composition.Hosting.CompositionFailedException없이 : 없음 수출이 가 계약 'ILOG'에 대한 발견되지 않았다 -> 수입에 필요한 ' 로그 '부분 'ATranslator '->'ITranslator [] '의 가져 오기'항목 '에 필요합니다. 계약 초기 요청에서 필요합니다.-> IEnumerable {IsImportMan y = True} '
합니다. LogExporter는 어떻게 사용합니까? – tofutim
LogExporter를 사용하지 않아도 작동한다고 생각합니다.이 속성을 내보내기위한 더미 클래스 일뿐입니다. 해볼 수 있니? – YuvShap
방금 해봤지만 어떻게 작동하는지 알 수는 없지만 작동하는 것처럼 보입니다. :) – tofutim