我正在做一些天体物理学研究,我正在使用Win-Form Chart组件分析数据。在X轴上是日期,在Y轴上是值,我正在使用图表的成员方法DataManipulator.FinancialFormula
对值进行MovingAverage。
我和我的顾问关心这个函数如何处理缺少的日期。所以我尝试使用ILSpy
查看System.Windows.Forms.DataVisualization.dll
以查看它是如何实现的,但我发现所有函数体都是空的,但是当我检查TcpClient
Dispose
和Close
方法时,我能够看到完整的功能体。我尝试ILDasm
和JustDecompile
的结果与ILSpy
相同。
为什么System.Windows.Forms.DataVisualization.dll
的方法体是空的?
那么DataManipulator.FinancialFormula
的真实代码在哪里?
或者这个函数如何处理日期中的空白?
答案 0 :(得分:3)
我和ILSpy的@Junaith输出之间的区别让我想到我正在查看错误的文件 - C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Windows.Forms.DataVisualization.dll
。我通过在图表的成员方法DataManipulator.FinancialFormula上使用“转到定义”VS函数查看的System.Windows.Forms.DataVisualization.Charting.DataFormula
元数据顶部的注释获得此路径。
所以我运行了我的程序并使用Process Explorer我查看了程序进程属性中加载的.NET程序集。令我惊讶的是,之前提到的dll并不存在,而是我找到C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Wind0de890be#\a4711c664a774896b35428b1a3bf9470\System.Windows.Forms.DataVisualization.ni.dll
。
我将这个dll加载到ILSpy中,方法已经完全实现,包括它们的主体。