【问题标题】:Webservice: not all properties showing on clientWebservice:并非所有属性都显示在客户端
【发布时间】:2009-07-16 14:38:52
【问题描述】:

我的 c# 项目的 dll 中有一个 vb.net 基类。我在 C# 中创建了一个派生类。我用 C# 类的所有属性填充 C# 类,包括 vb 类的基本属性。

现在我通过 web 服务 (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

是字典还是界面? (总结了我看到的属性)

问候, 亨克

【问题讨论】:

  • 请发布一些示例代码。

标签: c# jquery vb.net web-services


【解决方案1】:

您从 Web 服务返回的类型是什么? C# 类?

另外,请显示一些代码。我敢打赌,您刚刚创建了错误的 C# 属性,如果您删除了基类并只发送了派生类,您将不会收到任何发送。

【讨论】:

  • 它不是 c# 类,我不知何故是由于我从 vb.net lass 派生的,它继承自 Dictionary,并实现了一个总结了我所做的属性的接口见。
  • 字典不是 XML 可序列化的。另外,尝试返回 IEnumerable 而不仅仅是 IEnumerable。
  • 是的,我知道。但一些研究表明,只是将 vb 类的属性放入字典中。调用 webservice frmo 浏览器也给了我一个错误(无法序列化字典)。但我不明白为什么从 jQuery 调用它时它会起作用,为什么我看不到 C# 属性。由于 vb 类只是一些属性的容器,仅此而已,我只是创建了一个新的 C# 基类,旧的遗留代码仍在使用 vb 的东西,我现在只负责 C# 的东西:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多