2
我目前的方法可以限制操作字符串操作,但我需要更细粒度控制。我想做一些事情,比如将元素设置为标题大小写,只适用于某些参数,但为此,我需要能够在每个参数级别上进行操作。此方法不提供检查单个参数(如自定义属性)的元数据的方法吗?在PostSharp中可以修改一个方法的单个参数的值吗?
(我知道有更好的方法来强制参数的一致格式,但这表明我试图回答的问题)。
/// <summary>
/// Checks all string parameters on a method and trims the input if
/// a non null string is identified.
/// </summary>
[Serializable]
public class TrimAllStringInputsAspect : MethodInterceptionAspect
{
public override void OnInvoke(MethodInterceptionArgs args)
{
for (int i = 0; i < args.Arguments.Count; i++)
{
var argVal = args.Arguments.GetArgument(i);
if (argVal != null)
{
if (argVal is String)
{
args.Arguments.SetArgument(i, argVal.ToString().Trim());
}
}
}
args.Proceed();
}
}
谢谢你看着那个 – gb2d 2012-03-22 23:00:22