我使用ScriptServices返回IPaged 结果:[WebService]public IPaged<int> DoSomething() { .... ....}IPaged 是:public interface IPaged<T> : IEnumerable where T : class{ int PageNumber { get; } int PageSize { get; } IEnumerable<T> Items { get; } int PagesCount { get; } int TotalItemsCount { get; }}从DoSomething返回的Paged 类实现IPaged ,因此实现了IEnumerator GetEnumerator(): public IEnumerator GetEnumerator() { return ((IEnumerable)Items).GetEnumerator(); }每当我从Javascript ajax调用DoSomething时,脚本服务引擎都会返回IEnumerable实例并且未进行IPaged,因此我得到一个数组(来自GetEnumerator()方法的Items成员)。如何从脚本服务返回IPaged 而不是IEnumerable ? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 有点猜测,但是IEnumerable[<T>]的情况很常见(有时IList[<T>]优先于其他任何事情,然后跳转到“ collect of”分支)(忽略“ container”上定义的任何属性)。因此,我希望您最好的选择是没有IPaged<T>实施IEnumerable<T>。这可能意味着必须更改一些位置以添加.Items。另一种方法是添加ForJson()扩展方法,该方法返回类似于IPaged<T>的内容,但不实现IEnumerable[<T>]。 (adsbygoogle = window.adsbygoogle || []).push({}); 09-28 05:53