【发布时间】:2015-12-04 16:02:08
【问题描述】:
我最近继承了我公司有时有错误的网站,但没有继承它们的代码,所以我使用 ilspy 反编译二进制文件。我得到的错误如下:
decimal? locA = (from x in data where x.location == (int?)0 &&
x.invoice.Year == (int?)year && x.invoice.Month == (int?)month
select x).Sum((<>f__AnonymousType1<Invoice, int?> x) => x.invoice.Month_Value);
问题出在<>f__AnonymousType1<Invoice, int?> 行。错误消息(设计时)是f__AnonymousType1 类型在当前上下文中不存在。 (代码已反编译为其中的 15 个)A 找不到声明 f__AnonymousType1 的任何地方。
感谢您对此的任何帮助...
加雷斯
【问题讨论】:
-
这些是匿名类型。想做什么?
-
网站没有文档,所有开发人员都在一段时间前离开了,所以我试图解释这些网站。该 sn-p 来自一个名为“GuageDataForMonth”的函数。按月份和地区细分的发票表。它正在尝试按月汇总发票。由于没有原始代码,我想知道那些匿名类型是反编译器“猜测”的结果。返回的结果类是单记录聚合表数据
-
你的反编译器看起来很糟糕,通常这样的模式反编译得更好。我使用 Reflector,我认为它可以处理所有 C# 模式。你唯一的目标是理解?
-
没有。它正在生产中,但其他领域需要更改,例如发票、销售数据等的硬编码电子邮件地址。
-
Reflector 可以将整个程序集反编译为 C# 项目。我会先试试。