将函数的类型名称解析为日志的人类可读文本 - 通配符

本文关键字:人类 通配符 日志 文本 类型 函数 | 更新日期: 2023-09-27 18:30:34

如何获取函数的完整类型名称,例如:

  MyApp.Components.Services.<SomeMethodName>d__e.MoveNext

并将其解析为类似

  Components.Services.SomeMethodName()

我本可以通过简单的 Replace() 调用来解决问题,但是让我搞砸的是可能会有所不同的"d__e"。实际上,我需要通配符几个字符。像">*__*.MoveNext"

我该怎么做?

将函数的类型名称解析为日志的人类可读文本 - 通配符

">*__*.MoveNext"中使用否定字符类而不是*

正则表达式:

MyApp.(Components.Services.)<([^<>]*)>[^_]*__[^.]*.MoveNext

替换字符串:

$1$2()

演示

法典:

string str = "foo bar MyApp.Components.Services.<SomeMethodName>d__e.MoveNext";
string result = Regex.Replace(str, @"MyApp.(Components.Services.)<([^<>]*)>[^_]*__[^.]*.MoveNext", "$1$2()");
Console.WriteLine(result);
Console.ReadLine();

爱德酮