- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过 Fody/MethodTimer 记录我的方法的执行时间。
我不能只传递我的方法参数的某些属性(它们是类类型)。
我的方法:
[Time("'{obj.EventId}'")]
private static void testFody(TestClass obj)
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine($"This is : {i }");
}
}
public class TestClass
{
public Guid EventId { get; set; }
public string prop1 { get; set; }
public int prop2 { get; set; }
}
当我运行这段代码时,出现以下错误:
Could not process 'System.Void TestCurrentEPCIS.Program::testFody(TestCurrentEPCIS.TestClass)' because the format uses 'obj.EventId' which is not available as method parameter.
当我如下传递对象本身时,它将 obj.ToString() 传递给拦截器类:
[Time("'{obj}'")]
private static void testFody(TestClass obj)
如何将我的 obj 参数的一些属性传递给拦截器?
最佳答案
根据documentation ,这是目前不支持的东西:
Note 1: sub-properties are not (yet?) supported.
编织器仅通过属性支持两种类型的参数:
The following values are allowed:
- Any parameter name (e.g. {fileName})
- {this} (calls ToString() on the instance itself) Note that this is not available on static methods, the weaver will throw an error if being used in a static method
(强调我的)
似乎您可以做的唯一一件事就是将属性包含在重写的ToString
方法中。
编织器是开源的。如果您有时间可以专注于此,您可以考虑 fork 该项目并进行必要的更新。一个好的起点似乎是 ParameterFormattingProcessor使用基本正则表达式来识别参数名称的类。
关于c# - 如何仅将方法参数中对象的某些属性传递给 Fody/MethodTimer Interceptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55439458/
前言 在.NET开发中,为了准确统计对应方法的执行时间,我们最常用的方式是手动使用 Stopwatch 来显式编写计时逻辑,但是假如你需要大量的使用 Stopwatch 来进行耗时统计的话不利于保持
我想通过 Fody/MethodTimer 记录我的方法的执行时间。 我不能只传递我的方法参数的某些属性(它们是类类型)。 我的方法: [Time("'{obj.EventId}'")] privat
我是一名优秀的程序员,十分优秀!