어쩌면 나 자신에게 너무 힘들지만 실제로 이것을 알고 싶습니다. MEF를 사용하고 내 인생을 단순하게 만들 수 있다고 생각했기 때문에 나는 정말 못된 생성자가 하나 있습니다. 그러나 나는 옳지 않았습니다. 나는 정말로 Google을 사용했지만, 내가 발견 한 모든 것은 이것과 비교할만한 것이 아니었다. generic 형식의 인스턴스 두 개를 내보내는 중
new BussinesProcessLoader(new Loader<List<Resource>>(new Projects.Deserializer.ResourceDeserializer(), fileResolver), new Loader<List<Project>>(new ProjectsDeserializer(), fileResolver))
그래서 나는 두 가지를 내보낼 수 아니다 발견 :
public BussinesProcessLoader(ILoader<List<Resource>> resourceLoader, ILoader<List<Project>> projectsLoader)
{
this.resourceLoader = resourceLoader;
this.projectsLoader = projectsLoader;
}
가 지금은 MEF를 사용하고이 같은 BussinesProcessLoader를 작성할 수 있도록하려면 :
나는 이런 생성자가 이 클래스의 인스턴스는 다음과 같습니다.
internal class Loader<T> : ILoader<T>
{
public Loader(IDeserializer<T> deserializer, FileResolver fileResolver)
{
this.Deserializer = deserializer;
this.FileResolver = fileResolver;
}
public IDeserializer<T> Deserializer { get; set; }
public FileResolver FileResolver { get; set; }
...
}
두 개의 다른 ImportingConstructor attri가 필요합니다. butes 및 contractName 두 개의 수출 ...
...이 같은 BussinesProcessLoader의 생성자를 수정 :
[ImportingConstructor]
public BussinesProcessLoader([Import("ResourceLoader")] ILoader<List<Resource>> resourceLoader, [Import("ProjectsLoader")] ILoader<List<Project>> projectsLoader)
{
this.resourceLoader = resourceLoader;
this.projectsLoader = projectsLoader;
}
이를 위해도 가능합니까? 어떤 도움을 주시면 감사하겠습니다.
와우, 너무 간단하고 훌륭한 솔루션입니다. 그렇게 생각하지 않은 것은 수치스러운 일입니다. 감사합니다. –