C# 通用<;T>;具有非泛型类型T子级的ActionResult
我指的是第二个问题的答案 我在我的项目中写了这样的东西:C# 通用<;T>;具有非泛型类型T子级的ActionResult,c#,C#,我指的是第二个问题的答案 我在我的项目中写了这样的东西: public class DetailsViewModel<T> where T : Standard { public IList<T> OrderLines { get; set; } } public class Standard {} public class InitialStandard : Standard {} public class AlteredStandard : Standar
public class DetailsViewModel<T> where T : Standard
{
public IList<T> OrderLines { get; set; }
}
public class Standard
{}
public class InitialStandard : Standard {}
public class AlteredStandard : Standard {}
public class InitialDetailsViewModel : DetailsViewModel<InitialStandard>
{}
public class AlteredDetailsViewModel : DetailsViewModel<AlteredStandard>
{}
公共类详细信息viewmodel其中T:Standard
{
公共IList命令行{get;set;}
}
公共类标准
{}
公共类InitialStandard:标准{}
公共类AlteredStandard:Standard{}
公共类InitialDetailsViewModel:DetailsViewModel
{}
公共类AlteredDetailsViewModel:DetailsViewModel
{}
然后我有两种方法,我引用了一个ActionResult:
public void DetailsInitial(long Id)
{
Details<InitialDetailsViewModel>(orderId);
}
public void DetailsAltered(long Id)
{
Details<AlteredDetailsViewModel>(orderId);
}
public ActionResult Details<T>(long Id) where T : DetailsViewModel<Standard>
{
var model = Mapper.Map<T>(order);
return model;
}
public void detailsintial(长Id)
{
详细信息(订单ID);
}
公共空白详细信息(长Id)
{
详细信息(订单ID);
}
公共操作结果详细信息(长Id),其中T:DetailsViewModel
{
var model=Mapper.Map(顺序);
收益模型;
}
如果子项不是泛型,如何将此方法用于DetailsViewModel
子项
我注意到映射的区别在于
InitialStandard
和AlteredStandard
类的配置文件。我不完全确定,但我认为您正在寻找以下内容:
public void DetailsInitial(long Id)
{
Details<InitialDetailsViewModel, InitialStandard>(orderId);
}
public void DetailsAltered(long Id)
{
Details<AlteredDetailsViewModel, AlteredStandard>(orderId);
}
public ActionResult Details<T, U>(long Id)
where T : DetailsViewModel<U>
where U : Standard
{
var model = Mapper.Map<T>(order);
return model;
}
public void detailsintial(长Id)
{
详细信息(订单ID);
}
公共空白详细信息(长Id)
{
详细信息(订单ID);
}
公共行动结果详细信息(长Id)
其中T:DetailsViewModel
其中U:标准
{
var model=Mapper.Map(顺序);
收益模型;
}
这里,您说
T
继承DetailsViewModel
其中U
继承标准 我不完全确定,但我认为您正在寻找:
public void DetailsInitial(long Id)
{
Details<InitialDetailsViewModel, InitialStandard>(orderId);
}
public void DetailsAltered(long Id)
{
Details<AlteredDetailsViewModel, AlteredStandard>(orderId);
}
public ActionResult Details<T, U>(long Id)
where T : DetailsViewModel<U>
where U : Standard
{
var model = Mapper.Map<T>(order);
return model;
}
public void detailsintial(长Id)
{
详细信息(订单ID);
}
公共空白详细信息(长Id)
{
详细信息(订单ID);
}
公共行动结果详细信息(长Id)
其中T:DetailsViewModel
其中U:标准
{
var model=Mapper.Map(顺序);
收益模型;
}
这里,您说T
继承DetailsViewModel
其中U
继承标准