簡體   English   中英

向非通用類注冊通用接口

[英]Register generic interface with non generic class

我的應用程序中有一個通用接口:

public interface IBaseMapper<DTO, Entity> 
    where DTO : class, new()
    where Entity : class, new()
{
    List<DTO> EntityToDTO_Transform(List<Entity> requestEntity);
    Entity DTOEntity_Transform(DTO requestDTO);
}

這是由一個非泛型類實現的:

public class RequestMapper : IBaseMapper<RequestDTO,REQUEST>
{
    public REQUEST DTOEntity_Transform(RequestDTO requestDTO)
    {
        return Mapper.Map<RequestDTO, REQUEST>(requestDTO);
    }

    public List<RequestDTO> EntityToDTO_Transform(List<REQUEST> requestEntity)
    {
        return Mapper.Map<List<REQUEST>, List<RequestDTO>>(requestEntity);
    }
}

我正在使用Unity作為IoC容器進行依賴項注入。

如何解決依賴關系?

var container = new UnityContainer();

container.RegisterType(typeof(IBaseMapper<>), typeof(RequestMapper); // ???

config.DependencyResolver = new UnityDependencyResolver(container);

有什么想法嗎?

由於RequestMapper是非泛型的,因此在進行映射時需要指定其封閉的抽象,如下所示:

container.RegisterType(
    typeof(IBaseMapper<RequestDTO,REQUEST>), 
    typeof(RequestMapper));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM