2009-07-16 3 views
0

У меня есть базовый класс vb.net в dll в моем проекте C#. Я создал производный класс в C#. Я заполняю класс C# всеми его свойствами, включая базовые свойства класса vb.Webservice: не все свойства, отображаемые на клиенте

Теперь я отправляю их через webservice (C#) клиенту jQuery. Но на клиенте я вижу только свойства vb?

У кого-нибудь есть ключ?

public class FilmItem : ContentItem // ContentItem is from VB DLL 
{ 
    public string Zender { get; set; } 
    public string Jaar { get; set; } 

}

[WebMethod] 
    public IEnumerable GetContentItems(VBLib.GridRequest gridRequest) 
    { 
     ContentCache contentCache = new ContentCache(); 
     return contentCache.GetFilms(gridRequest); // gives back a List<FilmItem> 
    } 

Только что узнал, что если я удалю класс vb.net, все свойства показываются отлично от C# класса. Также выяснилось, что vb.net объявлен следующим образом:

Public Class ContentItem 
Inherits System.Collections.Generic.Dictionary(Of String, Object) 
Implements IContentItem 

Может быть, это словарь или интерфейс? (Который суммирует свойства я видел)

С уважением, Хенк

+0

Пожалуйста, отправьте несколько примеров кода. – Alex

ответ

0

Какой тип вы возвращенными из веб-службы? Класс C#?

Также, пожалуйста, укажите код. Бьюсь об заклад, вы только что создали свойства C#, и если вы удалили базовый класс и просто отправили производный класс, вы ничего не получили бы.

+0

Это не класс C#, я каким-то образом объясняется тем, что я получаю его из vb.net lass, который наследуется от Словаря, и реализует интерфейс, который суммировал свойства, которые я видел. – Henk

+0

Словари не являются XML Serializable. Кроме того, попробуйте вернуть IEnumerable вместо IEnumerable. –

+0

Да, я это знаю. Но некоторые исследования показали, что это были только свойства класса vb, которые были помещены в словарь. вызвав webservice frmo, браузер также дал мне ошибку (не может сериализовать словарь). Но я не понимаю, почему он работает при вызове его из jQuery и почему я не вижу свойства C#. Поскольку класс vb был всего лишь контейнером для некоторых свойств и не более того, я просто создал новый базовый класс C#, старый старый код по-прежнему использует материал vb, теперь я просто отвечаю за материал C# :) – Henk

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