我正在尝试扩展一个已经具有返回类型的方法。例如:
IQueryable<int> GetCategoryIds()
因此,我可以按如下方式使用它:
IQueryable<int> categories = GetCategoryIds();
我目前正在做:
IQueryable<int> categories = GetCategoryIds().Select(c => new Client() { ClientId == c.clientId });
这行得通,但我不想这样做Select
。我宁愿做一个除了 a 之外的扩展方法,type
这样我就可以在扩展方法中使用反射来确定类型等并返回相应的结果。扩展方法类似于:
public static IQueryable<T> LovelyExtension(this T objectType, int clientId)
然后我可以使用这个扩展(希望如此):
IQueryable<int> categories = GetCategoryIds().LovelyExtension<int>(1);
这可能吗?当我尝试它时,我得到了一个错误,因为GetCategoryIds
返回类型与扩展方法不同。但是,这适用于Select
声明。