代码之家  ›  专栏  ›  技术社区  ›  Ben Aston

在.NET3.5中使用泛型指定具体类型和基类型

  •  1
  • Ben Aston  · 技术社区  · 14 年前

    我创建了一个通用方法,使客户机能够指定 混凝土 返回实例的类型和 实际的 作为独立类型参数返回的类型(如接口)。自然地,具体返回的实例类型参数被约束为从实际返回的类型继承。

    其思想是您可以从 IFactory Create 方法。这种疯狂的刺激是AutoMapper需要知道在factory create方法中实例化哪个具体类型,我宁愿用接口定义factory返回值。

    代码:

    public static TDestinationBase 
      MapToDomain<TSource, TDestinationBase, TDestination>
        (this TSource source, IFactory<TSource, TDestinationBase> factory) 
          where TSource : IMappable<TDestination>, IDto 
          where TDestination : TDestinationBase
        {
            return factory.Create<TDestination>(source);
        }
    

    1 回复  |  直到 14 年前
        1
  •  2
  •   Jon Skeet    14 年前

    我很确定我理解,但我不确定这是否值得去做。它是否比在调用端强制转换到接口(或分配给接口类型的变量)提供了很多好处?我想这会鼓励你 认为 关于使用接口而不是具体类型。。。但它仍然无法强制执行:调用方只需指定同一类型两次。