私は以下のコードを持っています。次に、ticketStoreが別のメソッドで更新され、このメソッドが再度実行されるまで、ticketStoreNewはticketStoreに設定されます。C#メソッドが実行されていませんが順次
ただし、ticketStoreNew = ticketStore
行を含めると、プログラムは空の辞書を返します。メソッドが順番に実行されておらず、これがforループの前に実行されているようです。
実際にはticketStore
辞書に追加された新しいアイテムを返すだけでいいです。
public void UpdateTickets(string inputXml)
{
// If no new tickets exit
if (inputXml.Trim() == "") { return; }
//xmlString = inputXml;
// Load XML into an enumerable
XElement xelement = XElement.Parse(inputXml);
IEnumerable<XElement> xml = xelement.Elements();
foreach (var item in xml)
{
if (item.Name == "incident")
{
int id;
// If ID can be converted to INT
if (Int32.TryParse(item.Element("id").Value, out id))
{
// If ticket is not already in store create ticket and populate data
if (!ticketStore.ContainsKey(id))
{
Ticket ticket = new Ticket();
ticket.id = id;
ticket.number = Int32.Parse(item.Element("number").Value);
ticket.title = item.Element("name").Value;
ticket.description = item.Element("description").Value;
ticketStore.Add(id, ticket);
}
}
}
}
}
}
チケットは全てSamanageのAPIからXMLを得ることに基づいています:
EDIT は以下ticketStore
を取得するためのコードです。
ここでは関係だろう。このようticketStoreを更新する方法を記載してください。 –
元の投稿を編集して更新方法を追加しました。チケットストアとそのチケットアイテムはすべて、API呼び出しから引き出されたXMLから生成されます。 –
mike z: 'ticketStoreNew = ticketStore'をあなたのコードに置き換えようとしましたが、同じことをやっています。空の辞書を返しますが、行がコメントアウトされている場合は、いくつかの項目が返されます。 –