- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的源代码中几乎每个函数都有以下代码。
string methodName = MethodBase.GetCurrentMethod().Name;
我的问题是
考虑到反射是一件代价高昂的事情,是否建议使用上面的代码来实现相同的目的?
这仅用于记录目的。
最佳答案
不,我不会在你的源代码中到处这样做。
首先,我会使用一个专用的日志记录包,它可能有巧妙的方法来做得更好,并且肯定不会在您的源代码中那么突兀。有多种可用选项(log4net、nlog 等)。方法名到底有多重要?我通常发现,如果我在消息中使用足够的上下文进行记录,我就不需要知道确切的方法名称。这对于异常更为重要。
其次,如果您使用的是 C# 5,则可以使用 CallerMemberNameAttribute
让编译器为您指定调用日志记录函数的方法的名称。这显然比在执行时这样做明智得多。
关于c# - 是否建议使用 MethodBase 来查找用于记录目的的方法名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22450112/
我想将派生类中声明的属性的一些支持字段存储在基类中包含的 protected 哈希表中。这种机制在派生类中的使用必须尽可能简单。 那么,我能否使用 MethodBase.GetCurrentMetho
只是一个简单的观察。 property MethodBase.IsConstructor不适用于static构造函数,并且文档没有提及这一事实(引用:“true如果此方法是由ConstructorIn
只是一个简单的观察。 property MethodBase.IsConstructor不适用于 static 构造函数,并且文档没有提及这个事实(引用:“true 如果此方法是由 Construct
我的源代码中几乎每个函数都有以下代码。 string methodName = MethodBase.GetCurrentMethod().Name; 我的问题是 考虑到反射是一件代价高昂的事情,是否
我正在从 C++ 过渡到 C#,我有一个方法调用让我感到困惑。我想我也许能猜出它的作用,但如果专家能直接告诉我,我将不胜感激: WDResult returnValue = (WDResult)Inv
我正在使用带有 Lucene 引擎的后端 (.Net C#) 创建一个日志系统,并且我正在记录每个方法请求。 为此,我在后端创建了一个服务引用,WebService 方法参数之一是 Reflectio
我正在尝试使用此 post 中的类但它需要一个 MethodBase 才能运行。 我读了What is the fastest way to get a MethodBase object?但我找不到
我编写了一个日志类和一个函数,如下代码所示: Log(System.Reflection.MethodBase methodBase, string message) 每次我记录一些东西时,我也会记录
是否有等效于 MethodBase.GetCurrentMethod 的可移植类库? 我是 PCL 的新手。我只是在研究是否可以使用 PCL 来保存一些肯定会在 Silverlight 上使用并且可能
我有两个函数的 MethodBases: public static int Add(params int[] parameters) { /* ... */ } public static int
我想捕获在使用 invoke 方法调用的方法中抛出的异常。 public void TestMethod() { try { method.Invoke(comman
首先,很抱歉,如果之前有人问过这个问题。我进行了相当全面的搜索,没有发现任何类似的东西,但我可能遗漏了一些东西。 现在回答问题:我试图通过反射调用构造函数,但没有成功。基本上,我有一个要克隆的对象,因
有什么区别以及对代码的影响? 关于性能和限制,什么更适合? 新属性: - [调用文件路径属性] - [CallerMemberName] - [来电号码] 现在它们在 .NET 4 中也可用(它很容易
我正在将开源库从常规 .NET 4 Client Profile 移植到 DNX Core 5.0。有相当多的库更改,属性或方法被移动或完全删除。我看过this answer但它在我的情况下不起作用,
我正在将一个开源库从常规 .NET 4 客户端配置文件移植到 DNX Core 5.0。有相当多的库更改,属性或方法被移动或完全删除。我看过this answer但它在我的情况下不起作用,因为该方法已
我一直在为这个问题绞尽脑汁,但我找不到答案。 我知道 MethodBase.GetCurrentMethod 但我很好奇是否有等效项来获取当前正在执行的 Delegate(如果有一个正在执行,那就是)
我看到在 .NET 中实现登录时使用 StackFrame 和 MethodBase 的两个独立代码。 我知道 MethodBase 类提供有关方法和构造函数及其来源的信息。 StackFrame 表
如何从 MethodBase 中找出方法的返回类型?我正在使用 PostSharp 并尝试覆盖 CompileTimeValidate(MethodBase 方法)方法以确保该属性应用于具有正确签名的
我正在为try/catch语句创建一个简单的日志记录方法(没什么花哨的)。我要包括类名称和引发异常的方法。 有两种获取信息的方法。一种使用MethodBase.GetCurrentMethod()和异
我试图在运行时调用一个通用接口(interface)方法,但是在查找类型信息时它似乎找到了 IDomainEventSubscriber 而不是传递的正确类型。 抛出运行时错误:对象与目标类型不匹配。
我是一名优秀的程序员,十分优秀!