【发布时间】:2013-03-20 18:04:54
【问题描述】:
我正在使用 Ignite UI 工具集来生成 Excel 电子表格。我有一些代码在我的应用程序的旧版本中运行(我从旧的 SVN 代码中提取了源代码),但现在我遇到了一个非常奇怪的问题。
我得到的例外是:
An exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'
occurred in Unknown Module. but was not handled in user code
Additional information: 'object' does not contain a definition for 'Fill'
If there is a handler for this exception, the program may be safely continued.
这是调试器的屏幕截图,显示 cell.CellFormat.Fill(我正在尝试设置并获取异常)正在显示在监视窗口中。请注意,单元格本身是一个动态对象。
有人知道是什么原因造成的吗?也许我只是没有足够地处理动态对象,但在我看来,“填充”确实存在。
【问题讨论】:
-
这个程序似乎没有使用动态类型。在这种情况下,“var”使用隐式类型,但由于 GetRegion 不返回动态对象,因此“region”变量被声明为实现 IEnumerable
的 WorksheetRegion 实例。因此,当在这种类型上使用 foreach 时,隐式类型化的“单元格”变量应该是 WorksheetCell 类型,但由于某种原因,它被隐式类型化为对象。我不知道为什么,但是您明确键入变量的解决方案应该可以工作。 -
@MikeDour 那么:
dynamic {Infragistics.Documents.Excel.WorksheetCell}作为监视窗口中单元格的类型并不意味着cell是动态的? -
对不起,我一定错过了。我不明白为什么它会是动态的。正如我所说,WorksheetRegion 实现了 IEnumerable
.
标签: asp.net-mvc export-to-excel infragistics ignite-ui