- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在他们网站上的示例中,PostSharp 有一个在主系统程序集中拦截调用的演示。我已经尝试了几次在我没有源代码的程序集上设置和复制上述拦截调用,但没有成功。
我的方法是简单地放置针对我想要检测的命名空间和方法的程序集级别属性。这对我来说从来没有用过。
类似于:
[程序集:Trace("MyCategory", AttributeTargetTypes = "My.BusinessLayer.*")]
我是不是漏掉了什么?如果我没有为它引入源代码,我可以不在程序集上对我的检测方面进行运行时注入(inject)吗?我以为我可以进行运行时注入(inject)...
谢谢。
最佳答案
您可以通过指定跟踪其他程序集的方法:
[assembly: Trace("MyCategory",
AttributeTargetAssemblies="xyz",
AttributeTargetTypes = "My.BusinessLayer.*")]
但是,外部程序集不会被修改!只能修改当前项目对外部程序集的调用。
目前修改没有源代码的程序集并不容易。这是可能的,但被认为是高级场景,需要自定义编码。
关于c# - 我没有源代码的程序集上的 PostSharp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3196865/
我有一个包含许多项目的解决方案,我想禁用 Postsharp 进行调试构建,以减少本地开发人员的构建时间。有没有办法在不编辑每个项目文件的情况下做到这一点? 我知道这听起来像是一个坏主意,但我们只使用
我的 CI 构建服务器遇到问题,其中 PostSharp 导致构建失败,并显示以下消息:程序集“yada-yada.dll”使用未经许可的功能(基本功能)。 [...]。我们使用的是当前版本的 Pos
我可以指定 SkipPostSharp 常量来确保项目从 PS 进程的项目列表中排除。但我想反过来做。我希望 PS 假设它不应该处理我没有明确告诉它的任何内容。 这可以实现吗? 最佳答案 项目被Pos
依赖注入(inject)在 Postsharp 中不起作用。如何使方面可测试?我真的想避免创建具体的类来记录我的方面。 我不希望在单元测试方法时运行方面。如果我正在测试一种方法,我不希望触发日志记录方
是否有可能在 Postsharp 的编译期间找到程序集的项目文件夹/项目文件或输出路径,例如,在 CompileTimeInitialize 期间,当正在构建程序集时? 最佳答案 您可以在编译期间通过
我正在尝试修改 Postsharp 附带的示例跟踪应用程序,以便将跟踪应用于我的命名空间中的所有类,而无需显式地将 [QuickTrace] 放在每个类的顶部。我附上了截图。我究竟做错了什么 ?右键单
根据推荐的 PostSharp 最佳实践,我在我的所有项目中都包含了 PostSharp。但是,我在其中一些程序集中没有任何方面或其他转换;他们只是引用了其他确实有使用方面的项目。 在构建时,我收到以
刚刚从 nuget 包安装了 Postsharp 2.1,然后安装了 Phil Haack 的 NullGuard 包。 当我在类或方法级别添加 [EnsureNonNullAspect] 方面时,我
你如何得到参数姓名 的一种方法。这些示例向您展示了如何获取 值 参数,但不是 姓名 .我想看到 parma = 99, parmb = 1。不仅仅是 99, 1。 using System;
假设我有一个方面实现 IInstanceScopedAspect我将这个方面应用于类型中的方法。使用 FormatterServices.GetUninitializedObject 创建对象时如何初
我正在努力理解为什么要使用后编译器,例如 PostSharp ,是否需要? 我的理解是,它只是在原始代码中插入代码,那么为什么开发人员不自己编写代码呢? 我希望有人会说它更容易编写,因为您可以在方法上
是否可以使用 PostSharp 拦截类构造函数和析构函数调用?我想为类创建事件实例计数器。 最佳答案 您可以在构造函数和析构函数上使用 OnMethodBoundaryAspect。请注意,默认情况
我有几个项目,希望在多个项目中应用方面。我像这样使用多播属性: [assembly:MyProject.Aspects.NotifiableObject( AttributeTargetAss
创建了一个简单的类来测试 PostSharp 中的 OnExceptionAspect。 [Serializable] [AttributeUsage(AttributeTargets.Method
我有一个 MethodInterceptionAspect(PostSharp) 的实现但是当我在重写 OnInvoke 方法时,args.Method 为 null,我需要知道方法返回值类型, 有人
我创建了一个小的方面层次结构。示例: public abstract class MyBaseAspectAttribute : Aspect, IAspectProvider { ... p
我喜欢在跟踪级别上记录一些 Postsharp 消息。不幸的是,记录到这个级别没有输出。所有其他级别都在工作。与控制台或 NLog 后端或当我从其他类登录时的行为相同。 如何启用跟踪级别? App.x
在开始之前,我想澄清一下,我目前对 AOP 术语的理解如下...... 方面是 AOP 等同于 OOP 中的类。 通知是 AOP 等价于 OOP 中的方法。 切入点是 AOP 等价于 OOP 中的“使
我偶然发现了 PostSharp 的一个不可思议的良好性能行为。为了评估速度,我写了一个小程序,它会执行一个函数指定的次数,如果启用了 PostSharp,它会生成和删除几百个字符串,就在内存中(非固
我正在使用 postsharp 1.5 和 OnMethodBoundaryAspect 处理一个方面。我希望我的方面默认具有以下行为: 1 - 如果在类级别使用属性,则方面仅应用于 PUBLIC 方
我是一名优秀的程序员,十分优秀!