在哪里可以找到有关Eiffel内省的文档?
中调用某些功能我正在寻找调用者的类名来修改logger's格式化程序
类似:
Current.generator_client_object.class_name
答案 0 :(得分:1)
可以用generator
查找对象的类名。可以通过其他方式获得更详细的信息,从较高级别到较低级别:
generating_type
返回一个TYPE
类型的对象REFLECTED_OBJECT
的后代(存在引用对象和扩展对象的版本)来挖掘对象结构REFLECTOR
或INTERNAL
进行较少抽象的低级操作没有标准机制来获取当前正在执行的功能或其调用者的详细信息。仍然有可能从异常堆栈跟踪中获取此信息。这个想法如下:
{EXCEPTION}.trace
检索到的堆栈跟踪信息,提升一级或二级(需要进行一些实验才能获得正确的结果)。尽管这是可行的,但是由于异常处理和解析是缓慢的操作,因此性能将成为问题。