【发布时间】:2011-07-15 10:01:20
【问题描述】:
我有以下几点:
using (var dsProperties = GetDataset(SP_GET_APPLES, arrParams))
{
var apples= dsProperties.Tables[0].AsEnumerable()
.Select(r => new Apple()
{
Color = r[0].ToString(),
Year = r[1].ToString(),
Brand= r[2].ToString()
});
return apples.ToList();
}
现在,我想在Dataset 上有一个扩展方法,我可以将所需的Type 作为参数传递给它,并返回预期的List...类似
dsProperties.GetList(Apple);
也可以用于
using (var dsProperties = GetDataset(SP_GET_ORANGES, arrParams)){
dsProperties.GetList(Orange); }
有没有办法做到这一点?
【问题讨论】:
-
您可以使用反射和/或某种工厂来完成某些事情,但通常 C# 并不擅长这种事情。
-
你的苹果和橙子实现相同的接口吗?
-
您必须在调用中提供类型属性的映射。没有办法(除了可以进行映射的反射之外)。
-
@Maxim Gueivandov No. Apples 和 Oranges 是离散的 DTO
标签: c# linq dataset extension-methods anonymous-types