javascript を介してクエリしている XML ドキュメント (HTTP キャッシュに格納されている) をクエリする 2 つの単純な webservice メソッドがあります。このGetCitiesForAffiliate()
メソッドは、aff パラメーターに完全に有効なデータ項目を 1 つ渡すと、「select new」行で NullReferenceException をスローしています。aff パラメータの他のデータに対しては正常に機能します。他のメソッドを爆破させる同じ aff パラメータを使用しても、他のメソッドも正常に機能します。
照会している XML を検証しました。どちらのメソッドも、存在しない aff を渡すと、空の json 文字列を返すだけです。これで問題ありません。間違っている可能性があるのは何を見ればよいですか?
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetCitiesForAffiliate(string aff)
{
LocationService loc = new LocationService();
var query = (from center in loc.centersXml.Descendants("Center")
where center.Element("ServiceArea").Value.Equals(aff)
select new {
City = center.Element("City").Value
}).Distinct().OrderBy(x => x.City);
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(query);
return json;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetCentersForAffiliateCity(string aff, string city)
{
LocationService loc = new LocationService();
var query = (from center in loc.centersXml.Descendants("Center")
where center.Element("ServiceArea").Value.Equals(aff) && center.Element("City").Value.Equals(city)
select new {
ID = center.Element("ID").Value,
Name = center.Element("Name").Value
}).Distinct().OrderBy(x => x.Name);
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(query);
return json;
}