2010-10-07 1 views
1

Я создаю веб-службы в ASP.NET 2.0 с C# и есть веб-метод, который выглядит следующим образом:создания веб-службы с пейджинговой

[WebMethod()] 
    public List<Comment> GetYourSayComments(int pageNumber, int pageSize, int commentTopicId) 
    { 
     CommentManager cm = new CommentManager(); 
     return cm.GetYourSayComments(pageNumber, pageSize, commentTopicId, true); 

    } 

Это работает Greate за услуги, которые только что вернулись все сущности, этот метод, однако, возвращает вычисленные результаты. каков наилучший способ вернуть общее количество строк клиенту?

ответ

2

Вы должны создать пользовательский тип включить счетчик:

public class EnvelopeWithCount<T> 
{ 
    public T Value { get; set; } 
    public int RowCount { get; set; } 
} 

И тогда ваш веб-сервис будет возвращать новый тип:

[WebMethod] 
public EnvelopeWithCount<List<Comment>> GetYourSayComments(int pageNumber, 
                  int pageSize, 
                  int commentTopicId) 
{ 
    CommentManager cm = new CommentManager(); 
    Envelope<List<Comment>> retrunVal = new Envelope<List<Comment>>(); 
    returnVal.Value = cm.GetYourSayComments(pageNumber, 
              pageSize, 
              commentTopicId, 
              true); 
    // Get the count of all rows however you need 
    returnVal.RowCount = cm.GetYourSayComments(true).Count(); 

    return returnVal; 
} 
+0

веб-сервисы действительно поддерживают этот вид Generic возвращения введите .NET 2.0? –

+1

@John - Если бы они этого не сделали, исходное возвращаемое значение тоже не сработало бы. –

+0

спасибо, подумал, что я должен был бы сделать, но надеялся, что могу просто сделать атрибут в xml – aaron

Смежные вопросы