0

我有一个绑定到数据源的 MS ReportViewer 报告,它正在请求它不应该的属性。我检查了报告上的所有字段,但找不到任何使用它的地方。

在属性上放置一个断点表明它肯定被调用了,但我无法找到 ReportViewer 是从哪里进行调用的。

****有没有办法找出这个属性是从哪里调用的?**

这是我到目前为止检查的内容:

在此处输入图像描述

堆栈跟踪:显示托管代码,检查反汇编但看不到任何明显的东西。

在此处输入图像描述

调用层次结构显示了调用该属性的所有位置——报告中没有一个位置。

更新:

尝试了 n8wrl 的抛出异常的建议,但堆栈仍在非托管代码上。

在此处输入图像描述

更新 2

我还尝试添加 Xml 和 Script 忽略标签,以防对象在某处被序列化但不起作用(除非它们不是忽略序列化的正确标签?)

4

1 回答 1

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);
于 2012-07-19T10:29:09.730 回答