我编写了一个记录器/异常工厂模块,它使用System.Diagnostics.StackTrace获取调用方法及其声明类型的属性。但是我发现,如果我在Release模式下在Visual Studio之外运行代码,则会省略某些较短的方法并从堆栈跟踪中丢失。现在我无法测试某个方法是否会在运行时内联,但我也不想对每个重要的方法使用[MethodImpl(MethodImplOptions.NoInlining)]。但如果由于这个原因我的基础类中的方法被省略了,那么我可能会误读层和操作信息,导致错误日志或参数化不当的异常。
有什么经验法则可以告诉我在何处和何时进行内联?虚方法、静态方法、基类方法是否有所不同?我只需要担心程序集内的内联吗?还是命名空间内的内联?
有什么经验法则可以告诉我在何处和何时进行内联?虚方法、静态方法、基类方法是否有所不同?我只需要担心程序集内的内联吗?还是命名空间内的内联?