Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通用<;T>;具有非泛型类型T子级的ActionResult_C# - Fatal编程技术网

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
继承
标准