从我的标题可能有点难理解我想要实现什么,所以我会更详细地介绍一下。
我有以下界面:
public interface IModelBuilder<T>
where T : IStandardTemplateTemplate
{
M Build<M>(T pTemplate, params object[] pParams) where M : BaseModel;
}
现在我想在我的实际构建器中实现该接口。我使用的构建器用于映射不同的对象类型。因此,这看起来如下:
public class BusinessModelBuilder : IModelBuilder<IBusinessTemplate>
{
public virtual M Build<M>(IBusinessTemplate pTemplate, params object[] pParams) where M : BussinessModel
{
var businessModel = Activator.CreateInstance<M>();
// map data
return businessModel;
}
}
现在的问题是:我无法让约束条件起作用。由于我在接口上定义了约束条件,因此即使我的BusinessModel从BaseModel继承,它也不允许我在实际方法中使用不同的约束条件。它一直告诉我,我的约束条件M必须与接口中的约束条件匹配。我尝试了几种不同的方法,但似乎都没有起作用。
有人知道这是否可以实现吗?我只想在接口中说明允许继承模型。
BusinessModelBuilder
也能够是泛型的。 - Reed Copsey