2016-07-21 12 views
1

私はGetSuggestedAddressesという関数を持っています。リストを返す関数を呼び出す関数があります。私はまた、私のクラスにListという型のプロパティを持っています。 AddRangeを使用して返された結果を自分のプロパティに追加しようとしましたが、null例外がスローされています。私はコードをステップアップしようとしたが、少し失われている。何か案は?ここに私のコード -AddRangeがnull例外を投げる

public List<ExpressAddressResult> GetSuggestedAddresses(string format = "xml") 
    { 
    foreach (RequestArrayRecord address in reqRecords) { 
     string result = string.Empty; 
     NameValueCollection collection = new NameValueCollection(); 
     collection.Add("id", AuthKey); 
     collection.Add("line1", CleanUpAddress(address.AddressLine1)); 
     collection.Add("city", address.City); 
     collection.Add("state", address.State); 
     collection.Add("postalcode", address.Zip); 
     collection.Add("maxrecords", MaxSuggestionResults.ToString()); 
     collection.Add("format", format); 
     string parameters = GenerateParameters(collection); 

     Uri serviceAddress = new Uri(RequestURL + parameters); 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); 
     using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { 
      if (response != null) { 
       using (StreamReader streamReader = new StreamReader(response.GetResponseStream())) { 
       result = streamReader.ReadToEnd(); 
       } 
      } 
     } 

     XmlDocument xmlDoc = new XmlDocument(); 
     xmlDoc.LoadXml(result); 

     List<ExpressAddressResult> results = CreateListFromXml(xmlDoc); 

     if (results != null) { 
      AddressSuggestions.AddRange(results); // Throws Null Exception 
     } 
    } 

    return AddressSuggestions; // This is a property of type List<ExpressAddressResult> 
    } 
+1

「AddressSuggestions」はどこに定義されていますか?それがヌルではないことを確認しましたか? –

+1

もし、私が推測しなければならないのは... 'AddressSuggestions'がヌルです。あなたがこれを踏んだり、例外を壊したときに変数を検査しましたか? –

+2

[NullReferenceExceptionとは何か、それを修正する方法は?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) ) –

答えて

2
var addressSuggestions = new List<ExpressAddressResult>(); 

あなたは結果を返すと思っていますが、予想されるタイプに変換されています。 addRangeを忘れる

+0

Yup!これだった!私は私のコンストラクタでこれを初期化するのを忘れていました。あらかじめリストを初期化しなければならないことに気付かなかった。 –

+0

あなたがうまく働いてうれしいので、AddressSuggestionsはドロップダウンリストがバインドされていて、初期化されていないリストです。 –

1

リストは、あなたが実際すなわちAddressSuggestionsがnullの場合、範囲がnull追加されていることです。

このリストにアイテムを追加する前に、AddressSuggestionsが初期化されていることを確認してください。