问题标签 [postsharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2082 浏览

c# - 使用 PostSharp 将属性应用于接口

我希望能够将属性应用于接口,以便实现该接口的任何类中的每个方法都将应用属性。

我认为它看起来像这样:

然而,当我将它应用于如下接口时,在实现接口的类中调用该方法时,永远不会访问属性中的 OnEntry/OnExit 代码:

如果我在实现类本身中应用该属性,如下所示,它可以正常工作:

我错过了什么/做错了什么?

0 投票
1 回答
631 浏览

c# - PostSharp编译错误

我遵循了 postsharp 1.5 附带的示例。我有两个简单的项目:

一个有这样的方面:

在另一个项目中,我有一个这样的测试用例:

在“测试”的同一个项目中,我有以下测试夹具:

由于 postsharp 异常,代码将无法编译:

我应该怎么办?

0 投票
3 回答
1007 浏览

c# - 使用属性抑制 PostSharp 多播

我最近开始尝试使用 PostSharp,我发现了一个特别有用的方面来自动化 INotifyPropertyChanged 的​​实现。您可以在此处查看示例。基本功能非常好(将通知所有属性),但在某些情况下我可能想要禁止通知。

例如,我可能知道某个特定属性在构造函数中设置了一次,并且永远不会再更改。因此,无需发出 NotifyPropertyChanged 的​​代码。当类不经常实例化时开销最小,我可以通过从自动生成的属性切换到字段支持的属性并写入字段来防止问题。但是,当我正在学习这个新工具时,了解是否有办法用属性标记属性以抑制代码生成会很有帮助。我希望能够做这样的事情:

0 投票
2 回答
2085 浏览

c# - 使用 PostSharp 1.5 实现 INotifyPropertyChanged

我是 .NET 和 WPF 的新手,所以我希望我能正确地提出这个问题。我正在使用使用 PostSharp 1.5 实现的 INotifyPropertyChanged:

}

然后我有几个实现 [NotifyPropertyChanged] 的类(用户和地址)。它工作正常。但我想要的是,如果子对象发生变化(在我的示例地址中),父对象会得到通知(在我的情况下是用户)。是否可以扩展此代码,以便它自动在父对象上创建侦听器以侦听其子对象的更改?

0 投票
1 回答
1182 浏览

c# - 如何根据条件退出 PostSharp 方面的 OnEntry 方法中的方法

我希望方面根据如下条件退出方法调用:

非常感谢任何帮助。

0 投票
2 回答
2264 浏览

.net - Spring.Net 可以用作 PostSharp 吗?

几个月前,我发现了 PostSharp,有一段时间,它很好。

但随后法律回复说他们不喜欢旧版本的许可证。然后部门告诉我,2.0 的价格高得无法接受(就我们需要的座位数量而言)……我非常失望,但并不灰心。不可能是唯一的这样的框架,我想。

我一直在寻找替代品,但其中大部分要么已死,要么维护不善(特别是在文档部门),要么用于学术用途,要么以上所有(我在看你 Aspect.Net)

然后我发现了 Spring.Net,有一段时间,它很好。

我一直在阅读文档,它继续描绘了似乎是 AOP 必杀技的优越画面。我不再锁定属性来标记我希望代码拦截发生的位置,但它可以在 XML 中进行配置,并且不需要重新编译对其进行更改。伟大的。

然后我查看了示例并在每个使用场景中看到了以下内容:

为什么前两行代码必须存在?它毁了一切。这意味着我不能简单地为用户提供一组方面和属性或 XML 配置,他们可以通过在适当的方法/类/等上粘贴适当的属性或编辑 XML 中的匹配模式来使用它们。他们必须修改他们的程序逻辑才能完成这项工作!

在这种情况下,有没有办法让 Spring.Net 表现得像 PostSharp?(即用户只需要添加属性/XML 配置,不需要编辑任何方法的内容。

或者,是否有一个值得和有效的替代 PostSharp?我在 SO 上看到过一些类似这样的问题,但他们都没有真正想要取代 PostSharp,他们只是想补充它的功能。我需要全换。

0 投票
2 回答
1144 浏览

c# - 程序集范围的多播属性。他们是邪恶的吗?

我正在做一个项目,我们在 AssemblyInfo.cs 中有几个属性,这些属性被多播到特定类的方法。

我不喜欢这一点,它在 AssemblyInfo 中加入了一段逻辑(Info,请注意!),对于初学者来说,它根本不应该包含任何逻辑。最糟糕的是,实际的 MyClass.cs 在文件中的任何位置都没有该属性,并且完全不清楚此类的方法是否具有它们。从我的角度来看,它极大地损害了代码的可读性(更不用说过度使用 PostSharp 会使调试成为一场噩梦)。尤其是当您有多个多播属性时。

这里的最佳做法是什么?有没有人在使用这样的 PostSharp 属性?

0 投票
4 回答
16329 浏览

c# - 如何在 C# 中使用 System.Reflection.MethodBase 找到方法的返回类型?

如何从 MethodBase 中找出方法的返回类型?我正在使用 PostSharp 并尝试覆盖 CompileTimeValidate(MethodBase method) 方法以确保将属性应用于具有正确签名的方法。

谢谢,

0 投票
2 回答
2179 浏览

c# - PostSharp OnMethodBoundaryAspect

我正在研究 postsharp 1.5 和 OnMethodBoundaryAspect 的一个方面。我希望我的方面默认具有以下行为:

1-如果在类级别使用属性,则方面仅应用于PUBLIC方法。

2-方面的用户可以将方面置于私有或受保护的方法中。

如果我使用这个 [MulticastAttributeUsage(MulticastTargets.Method, TargetMemberAttributes = MulticastAttributes.Public)] 点 1 有效,但案例 2 甚至没有构建,因为不兼容。

然后我尝试使用: AttributeTargetTypeAttributes = MulticastAttributes.Public; 在方面的构造函数中,但不起作用。

非常感谢您提前。

0 投票
1 回答
393 浏览

c# - Postsharp重复属性?

谁能解释为什么我会收到此编译错误?

这是代码:

这是方面的声明:

看起来我正在关注这个例子: http ://www.sharpcrafters.com/blog/post/multicasting-of-custom-attributes.aspx

任何人都可以帮忙吗?