本文整理汇总了C#中System.Diagnostics.StackFrame.GetParameters方法的典型用法代码示例。如果您正苦于以下问题:C# StackFrame.GetParameters方法的具体用法?C# StackFrame.GetParameters怎么用?C# StackFrame.GetParameters使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Diagnostics.StackFrame
的用法示例。
在下文中一共展示了StackFrame.GetParameters方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Trace
private void Trace(string message)
{
string method = null, type = null, parameters = null;
for (var i = 2; i < 5; i++)
{
var cm = new StackFrame(i).GetMethod();
if (cm.DeclaringType == typeof (CsDbDataSet) || cm.DeclaringType == typeof (CsDbTable<>))
continue;
type = cm.DeclaringType?.Name;
method = cm.Name;
parameters = cm.GetParameters().Select(x => x.Name).Join();
break;
}
Debug.WriteLine($"DBTRACE @ {type}.{method}({parameters}) ".Expand(70) + $"!-> {message}");
}
示例2: GetMethodDetails
internal static void GetMethodDetails(int frameToSkip, out string namespaceName, out string className, out string methodSignature)
{
StringBuilder output = new StringBuilder();
MethodBase method = new StackFrame(frameToSkip, false).GetMethod();
namespaceName = method.DeclaringType.Namespace;
className = method.DeclaringType.Name;
output.Append(method.Name);
output.Append("(");
ParameterInfo[] paramInfos = method.GetParameters();
if (paramInfos.Length > 0)
{
output.Append("{0} {1}".FormatWith(paramInfos[0].ParameterType.Name, paramInfos[0].Name));
if (paramInfos.Length > 1)
{
for (int j = 1; j < paramInfos.Length; j++)
{
output.Append(", {0} {1}".FormatWith(paramInfos[j].ParameterType.Name, paramInfos[j].Name));
}
}
}
output.Append(")");
methodSignature = output.ToString();
}