我有一个绑定到数据源的MS ReportViewer报告,它正在请求它不应该的属性。我已经检查了报告中的所有字段,但我无法找到它所使用的任何字段。
在属性上设置一个断点显示它肯定被调用,但是我无法从ReportViewer的调用位置找到它。
****有没有办法找出这个属性的来源?**
这是我到目前为止所检查的内容:
堆栈跟踪:显示托管代码,检查反汇编但看不到任何明显的内容。
调用层次结构显示调用属性的所有位置 - 报告中没有任何位置。
更新
尝试了n8wrl关于抛出异常的建议,但堆栈仍然是非托管代码。
更新2
我还尝试添加Xml和Script ignore标签,以防对象在某处被序列化但不起作用(除非它们不是忽略序列化的正确标签?)
答案 0 :(得分:1)
好的,我想出了一个解决方案。我认为这与序列化有关,所以我将数据源传递给System.Web.Script.Serialization.JavaScriptSerializer。
序列化对象时,我发现导致代码爆炸的所有属性。我将[ScriptIgnore]标签添加到这些属性中,以阻止它们在未使用时开始序列化。
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
serializer.RecursionLimit = int.MaxValue;
object o = serializer.Serialize(base.CurrentOrder);