先看一下代码
Service部分:
[WebMethod]
public SNInfo QuerySnInfoBySN(Guid SnID)
}
public IList QuerySnInfo(Hashtable conditions, params string[] sortProperties)
}
客户端部分:
<asp:panel id="pnlResults" runat="server" cssclass="group">
<H4>搜索结果
<asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid></H4>
<DIV class="pager">
<CSC:PAGER id="pgrUsers" runat="server" controltopage="DataGrid1" cachedatasource="True" pagesize="10"
CacheDuration="10"></CSC:PAGER></DIV>
</asp:panel>
private void search_Click(object sender, System.EventArgs e)
}
执行以上程序时会抛出异常,"
ID 为“DataGrid1”的 DataGrid 未能从选定数据源自动生成任何列。
用Repeater,Eval表达式会抛出"不能绑定到字段的异常".
后来发现VS.net自动生成的代理类把SNInfo类的属性都反序列化成了字段.
解决方法:
1,手动修改代理类,如此一来,每次更新Service都要修改代理类,不方便
2,控制SOAP的序列化过程
第二种方法,不知道怎么实现,试了几种方法都不成功,求教
Hashtable会抛出" 不支持类型Hashtable,因为实现了Idictionary"
这样以来,最根本的方法还是要控制SOap的序列化过程.可是这个过程是.net自动生产的,怎么才能截获它呢?
否则就不能用很多类型的参数了
相关文章: