C# 为什么CallerClassName(或CallerTypeName或类似)属性不存在?

C# 为什么CallerClassName(或CallerTypeName或类似)属性不存在?,c#,.net,attributes,C#,.net,Attributes,C#中有一些属性,如CallerMemberName,特别是对于日志记录而言,这些属性非常方便。每个人(至少是我)似乎都缺少的是CallerClassName,这样我们就可以轻松地记录类似的内容,而无需显式地传递this或带有类名的字符串: MyClass.MyMethod执行期间发生异常 是否有任何限制使我们很容易了解方法而不了解类,或者它只是我们可能需要添加的一个缺少的功能?“为什么”是一个只有.NET团队才能回答的问题,因此这实际上不是本文的主题。你可能想看看thoughWell,我想这是

C#中有一些属性,如
CallerMemberName
,特别是对于日志记录而言,这些属性非常方便。每个人(至少是我)似乎都缺少的是
CallerClassName
,这样我们就可以轻松地记录类似的内容,而无需显式地传递
this
或带有类名的字符串:

MyClass.MyMethod执行期间发生异常


是否有任何限制使我们很容易了解方法而不了解类,或者它只是我们可能需要添加的一个缺少的功能?

“为什么”是一个只有.NET团队才能回答的问题,因此这实际上不是本文的主题。你可能想看看thoughWell,我想这是相当合法的,因为这是合乎逻辑的,可能有一些我没有想到的技术原因,这可能就是原因。它不像是基于意见的:)。感谢您在
nameof()
之前的参考,您可以使用它来实现
INotifyPropertyChanged
,而无需硬编码属性名称。我可以想象他们心中有这个目标,没有必要再增加其他目标。不过,只是猜测而已。如果你问我的话,那将是多余的,因为你有stacktrace和异常…@mm8,因为我不想每次都把它传递给记录器,这样我就可以自动地在那里获得一些上下文信息。这样做当然很容易。