作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 MethodInterceptionAspect
(PostSharp) 的实现但是当我在重写 OnInvoke 方法时,args.Method 为 null,我需要知道方法返回值类型,
有人知道吗?
[PSerializable]
public class PSHandleRequestAttribute : MethodInterceptionAspect
{
public PSHandleRequestAttribute(bool readOnly = true) : base()
{
ReadOnly = readOnly;
}
#region Properties
protected bool ReadOnly { get; set; }
#endregion Properties
#region Public Methods
public override void OnInvoke(MethodInterceptionArgs args)
{
var instance = args.Instance as IBusinessTransaction;
var method = args.Method;
if (instance.IsNull())
{
throw new Exception("Use PSHandleRequestAttribute only for IBusinessTransaction");
}
instance.OpenTransaction();
try
{
args.Proceed();
//base.OnInvoke(args);
instance.CommitTransaction();
return;
}
catch (Exception ex)
{
var errorMessage = instance.RollbackTransaction(ex);
return;
}
}
#endregion Public Methods
}
最佳答案
PostSharp 会优化生成的代码,因此当 args.Method
的值未在任何地方使用时,优化器会跳过一些操作并将 null 作为值传递。
在代码中使用该值后,该值就会出现。
我还建议您在 CompileTimeValidate
方法中进行使用验证并发出构建时错误消息。这样您就可以在构建时捕获可能的错误。请参阅http://doc.postsharp.net/aspect-validation .
关于Postsharp MethodInterceptionAspect 获取方法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43091952/
我有一个 MethodInterceptionAspect(PostSharp) 的实现但是当我在重写 OnInvoke 方法时,args.Method 为 null,我需要知道方法返回值类型, 有人
我需要限制一些关于许可证的功能。所以我在 postSharp 中使用 MethodInterceptionAspect 创建了一个属性并验证了我需要的字段。是否有任何其他第三方制作 aop 自定义属性
public class CacheAttribute : MethodInterceptionAspect { public override void OnInvoke(MethodInt
我是一名优秀的程序员,十分优秀!