我有以下内容:
ModelBuilder builder = new ModelBuilder();
builder.Entity<Model>().Add(new ModelMapper());
相反,我想按如下方式使用它:
ModelBuilder builder = new ModelBuilder();
builder.Add<ModelMapper>();
因此,ModelBuilder Add扩展将创建一个T的新实例并将其添加到builder.Entity()。Add(new T);
我该怎么做?
答案 0 :(得分:1)
这应该使用类型约束的组合来完成工作。您可能希望将其作为扩展方法。
public void Add<TEntity, TMapper>()
where TEntity : class
where TMapper : EntityMapper<TEntity>, new()
{
this.Entity<TEntity>().Add(new TMapper());
}
并像这样使用它:
builder.Add<Model, ModelMapper>();