安装Silverlight

开发Silverlight

SL ws返回 xml sl读取成功 linq数据的时候报错 请大虾虾们帮忙指点

No replies
lige86
User offline. Last seen 1 年 24 周 ago. Offline
Joined: 08/09/2010

//实体
public class XC_D
{
public XC_D() { }
///


/// 明细ID
///

public int PTDID
{
get;
set;
}
///


/// 编码
///

public int PTMID
{
get;
set;
}

....
}
protected void GetElementItem()
{
TemplateDB.WebServiceSoapClient wssc = new PrintTemplate.TemplateDB.WebServiceSoapClient();
wssc.GetItemlate_DCompleted+=new EventHandler(wssc_GetItemlate_DCompleted);
wssc.GetItemlate_DAsync(TemplateID);
}
void wssc_GetItemlate_DCompleted(object sender, PrintTemplate.TemplateDB.GetItemlate_DCompletedEventArgs e)
{
if (e.Error != null)
{
System.Windows.Browser.HtmlPage.Window.Alert(e.Error.ToString());
}
else
{
System.Windows.Browser.HtmlPage.Window.Alert("开始!");
XmlReader xr = XmlReader.Create(new StringReader(e.Result.ToString()));
XDocument document = XDocument.Load(xr);

System.Windows.Browser.HtmlPage.Window.Alert("读取完毕!");
var projects = from f in document.Descendants("ds")
select new XC_D
{
PTDID=int.Parse(f.Attribute("PTDID").Value),
PTMID=int.Parse(f.Attribute("PTMID").Value)

};
System.Windows.Browser.HtmlPage.Window.Alert("开始遍历!");
List list =new List();
list.AddRange(projects);
System.Windows.Browser.HtmlPage.Window.Alert(list.Count.ToString());
foreach (XC_D item in list)
{
System.Windows.Browser.HtmlPage.Window.Alert(item.ControlName);
}
System.Windows.Browser.HtmlPage.Window.Alert("遍历结束!");

XML的数据读取成功 在linq的时候

var projects = from f in document.Descendants("ds")
select new XC_PrintTemplate_D
{
PTDID=int.Parse(f.Attribute("PTDID").Value),
PTMID=int.Parse(f.Attribute("PTMID").Value)

};

这段报错

用户代码未处理 System.NullReferenceException
Message="未将对象引用设置到对象的实例。"
StackTrace:
位于 PrintTemplate.MainPage.b__1(XElement f)
位于 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
位于 System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
位于 System.Collections.Generic.List`1.AddRange(IEnumerable`1 collection)
位于 PrintTemplate.MainPage.wssc_GetItemlate_DCompleted(Object sender, GetItemlate_DCompletedEventArgs e)
位于 PrintTemplate.TemplateDB.WebServiceSoapClient.OnGetItemlate_DCompleted(Object state)
InnerException:

=====================================================================================

//ws
[WebMethod]
public object GetItemlate_D(int TID)
{
XCJY.BLL.XC_PrintTemplate_D bll = new XCJY.BLL.XC_PrintTemplate_D();
string xml = bll.GetList(string.Format("PTMID={0}", TID)).GetXml();
return xml;
}

返回的xml正确
=====================================================================================

小弟弟我刚接触sl3天有余 请大侠助我

读取到的XML



2
1
0
a5308f17-9d37-47fa-a5af-1f2749184479

[DataBinding]
72
79
172
178

0.000
0
100
99
0
0



3
1
0
9d6f9f41-30c9-4639-b0ea-c1610f3446a8

[DataBinding]
39
79
139
99

0.000
0
100
20
0
5



4
1
0
62fd0789-7e7b-436e-90a4-6c7d0ecfac7d
123456785
PackCode
207
79
306
104
宋体
15.000
0
99
25
0
0
cut123