几年前,Eric Lippert写了一篇关于假设的 infoof 运算符的博客,它允许您在编译时而不是在运行时获取方法/属性信息。基本上说这是一匹漂亮的小马,但没有独角兽......
我读了一些关于 Rosyln 在编译时重写代码的能力,使用 Roslyn 实现 infoof 有多难?
编辑:我认为这可能是获取 Eric 所说的所有内容的一种方式,但如果不是,我应该稍微分解一下这些功能。
- 获取属性名称。
- 获取属性类型。
- 获取属性访问器。
- 获取方法名称。
- 得到他所说的infoof的一切......
以重构安全的方式,在编译时得到验证。就我个人而言,1 涵盖了我实际使用的大约 90%(用于获取呼叫者姓名的新呼叫者信息属性实际上可以涵盖大约 60%,但当然,如果有一种方法可以在该方法的内部和外部工作,这将是可取的)。