2009-07-16 11 views
0

私のC#プロジェクトのdllにvb.netベースクローズがあります。私はC#で派生クラスを作成しました。私はvbクラスの基本プロパティを含むすべてのプロパティでC#クラスを埋めます。ウェブサービス:すべてのプロパティがクライアントに表示されていません

私は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 

辞書またはインターフェイスでもかまいませんか?

について(私が見ていた性質を合計する)、 ヘンク

+0

サンプルコードを投稿してください。 – Alex

答えて

0

では、Webサービスから返される型は何でしたか? C#クラス?

また、コードを表示してください。私はちょうどC#のプロパティを間違って作成したと思うし、基本クラスを削除し、派生クラスを送信した場合、何も送信されませんでした。

+0

これはC#クラスではありませんが、私は何とか辞書から継承するvb.net lassから派生し、私が見たプロパティを集計したインターフェイスを実装しているからです。 – Henk

+0

辞書はXMLシリアライズ可能ではありません。また、IEnumerableの代わりにIEnumerable を返すようにしてください。 –

+0

はい、私はそれを知っています。しかし、いくつかの調査では、vbクラスのプロパティだけが辞書に入れられていることがわかりました。ブラウザのWebサービスfrmoを呼び出すと、エラー(私は辞書をシリアル化できません)が与えられました。しかし、私が理解できないことは、なぜjQueryから呼び出すときに動作しているのか、なぜC#のプロパティが表示されないのかということです。 VBクラスはいくつかのプロパティのための単なるコンテナだったので、私はちょうど新しいC#ベースクラスを作成しました、古いレガシーコードはまだVBのものを使用しています、私は今C#のものを担当しています:) – Henk

関連する問題