2017-05-14 9 views
0

私はコレクションairpricepointを持っているオブジェクトを私に返すwebserviceを打っています。私は同様のクラスアイテムを作成し、airpricepointを作成しました。私はforeachループと内部コレクションにアクセスすることができますが、私はループすることができませんので、lowFareSearchRsp.ItemsをIListコレクションにキャストしようとしていますリストにレスポンスオブジェクトの型をキャストするC#

IList collection = (IList)lowFareSearchRsp.Items; 
if (collection != null) 
{ 
    foreach (var fareitems in collection) 
    { 
     items itemsobj = new items(); 
     Document.airpricepoint airpricepointobj = new airpricepoint(); 
     airpricepointobj.AirPricingInfo = new List<airpricinginfo>(); 
     airpricepointobj.AirPricingResultMessage = fareitems.AirPricingResultMessage; 
     airpricepointobj.FeeInfo = fareitems.FeeInfo; 
     airpricepointobj.FareNote = fareitems.FareNote; 
     airpricepointobj.TaxInfo = fareitems.TaxInfo; 
     airpricepointobj.Key = fareitems.Key; 
     airpricepointobj.TotalPrice = fareitems.TotalPrice; 
     airpricepointobj.BasePrice = fareitems.BasePrice; 
    } 


public class items 
{ 
    public IList<airpricepoint> AirPricePoint { get; set; } 
} 

public class airpricepoint 
{ 
    public IList<airpricinginfo> AirPricingInfo { get; set; } 
    public object AirPricingResultMessage { get; set; } 
    public object FeeInfo { get; set; } 
    public object FareNote { get; set; } 
    public object TaxInfo { get; set; } 
    public string Key { get; set; } 
    public string TotalPrice { get; set; } 
    public string BasePrice { get; set; } 
} 
+0

System.Collectionsのクラスは使用しないでください。ジェネリックを使用する... –

+0

マップされたWebサービスの自動生成されたクラスの構造を表示することができます。 – shinjidev

答えて

0

実際にウェブサービスの場合は、受信しているデータの構造(フォーマット)を既に知っています。通常、JSONまたはXML形式になります。それがWCFサービスの場合は契約クラスにパッケージ化されます。

これは、任意のJSONまたはXMLシリアル化ライブラリを使用してデータを単純に逆シリアル化できることを意味します。

+0

私はすでに、xmlデシリアライズされているLowFareSearchRsp objでデータを取得しています。jsonにシリアル化してデシリアライズする方が良いでしょうか?それはかなり簡単です。 – Muhammed

+0

"xml de-serialized"とは何を意味していますか? Webサービスからオブジェクトを取得する場合、どのデータ型が 'lowFareSearchRsp.Items'ですか? –

関連する問題