2017-12-13 6 views
0

私は以下のような配列リストを渡していますが、上記のエラーを受け取りたいと考えています。コードはmyitemを渡すだけで正常に動作しますが、複数回も渡すことができる必要があります。'System.collections.ArrayList'型を明示的にmywebservicecall.ServiceReference1.groupitemsに変換できません

これは私のコードです:

var deserializedm = JsonConvert.DeserializeObject<List<Mulitipay>>(mpay.ToString()); 

int num = 0; 
ArrayList list = new ArrayList(); 

foreach (Mulitipay m in deserializedm) 
{ 
    num++; 
    string f = m.Fund; 
    string a = m.Amount; 
    int am = System.Convert.ToInt32(a); 
    string g = m.Gl; 
    string d = m.Details; 


    var itd = new ServiceReference1.glItemDetails(); 
    itd.fundCode = f; 
    itd.additionalReference = reference; 


    var its = new ServiceReference1.Data(); 
    its.description = d; 
    its.reference = g; 
    its.amountInMinorUnits = am; 

    var myitem = new ServiceReference1.sampleGroupItem(); 
    myitem.lgItemDetails = itd; 
    myitem.itemSummary = its; 
    myitem.lineId = "tetetetet1232323"; 
    list.Add(myitem); 
} 

var alllist = list; 

simpleivr.sale = new ServiceReference1.samplesale(); 
simpleivr.sale.saleSummary = new ServiceReference1.Data(); 
simpleivr.sale.saleSummary.description = "stuff1"; 
simpleivr.sale.saleSummary.reference = "000303"; 
simpleivr.sale.saleSummary.amountInMinorUnits = 400; 
simpleivr.sale.items = new ServiceReference1.SampleGroupItem [] { alllist}; 

Webサービス(Webサービスではない完全なもののサンプル)

/// <remarks/> 
[System.Xml.Serialization.XmlArrayAttribute(Order=2)] 
[System.Xml.Serialization.XmlArrayItemAttribute("Groupitem" IsNullable=false)] 
public SampleGroupItem[] GroupItems{ 
    get { 
     return this.itemsField; 
    } 
    set { 
     this.itemsField = value; 
     this.RaisePropertyChanged("Groupitems"); 
    } 
} 

答えて

0

配列リストはList<Object>に似ているものです。これをタイプSampleGroupItemの配列に割り当てます。あなただけの助けをだからあなたのコードが

var deserializedm = JsonConvert.DeserializeObject<List<Mulitipay>>(mpay.ToString()); 
     int num = 0; 
     List<ServiceReference1.SampleGroupItem> list = new List<ServiceReference1.SampleGroupItem>(); 

     foreach (Mulitipay m in deserializedm) 
     { 
      num++; 
      string f = m.Fund; 
      string a = m.Amount; 
      int am = System.Convert.ToInt32(a); 
      string g = m.Gl; 
      string d = m.Details; 


      var itd = new ServiceReference1.glItemDetails(); 
      itd.fundCode = f; 
      itd.additionalReference = reference; 


      var its = new ServiceReference1.Data(); 
      its.description = d; 
      its.reference = g; 
      its.amountInMinorUnits = am; 

      var myitem = new ServiceReference1.sampleGroupItem(); 
      myitem.lgItemDetails = itd; 
      myitem.itemSummary = its; 
      myitem.lineId = "tetetetet1232323"; 
      list.Add(myitem); 
     } 

     simpleivr.sale = new ServiceReference1.samplesale(); 
     simpleivr.sale.saleSummary = new ServiceReference1.Data(); 
     simpleivr.sale.saleSummary.description = "stuff1"; 
     simpleivr.sale.saleSummary.reference = "000303"; 
     simpleivr.sale.saleSummary.amountInMinorUnits = 400; 
     simpleivr.sale.items = list.ToArray(); 
+0

乾杯@Mahmoudになるだろう、私はこれをしようとすると、あなたが再び – UKv

+0

感謝をお知らせList<SampleGroupItem>ArrayListを変更し、その後方法.ToArray()
を呼び出すためにその作業罰金を必要とします。 – UKv

+0

私は助けてくれてうれしい、今質問を終わらせるべきだ。 – Mahmoud

関連する問題