问题标签 [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.
c# - Postsharp:它是如何工作的?
根据我的另一个问题的建议,我将引用的代码转换为与 PostSharp 一起使用:
属性:
尽管如此,我还是无法得到任何结果(控制台上的“Works!”)。PostSharp 属性中的断点表明它从未被输入过。
有什么帮助吗?提前致谢。
visual-studio - 从 VS2008 中运行单元测试与在命令行上使用 mstest
我最近在 VS2008 中运行单元测试与在命令行上使用 mstest 运行相同的单元测试时遇到了一些不一致。
我的场景有点先进,所以我可能遇到了一些问题。我有许多针对同一个数据源运行的数据驱动单元测试。我也喜欢尝试使用 PostSharp。所以,我写了一个 PostSharp 方面——TestDataSource
我将其应用于单元测试类型,而不是单元测试方法。构建类型时,此方面指示 PostSharp 将DataSource
属性附加到类型中的每个单元测试方法。
检查 Reflector 中构建的程序集表明,每个测试方法确实具有正确的DataSource
属性。在命令行上使用 mstest 运行测试的行为与预期一样 - 每个测试都针对指定的数据源运行。
但是,在 VS2008 中运行完全相同的单元测试无法找到数据源。就好像 VS2008 忽略了构建的程序集并查看源代码,这当然看起来不是数据驱动的测试,因为该DataSource
属性是在构建过程中注入的。
部署的项目没有问题。手动附加DataSource
到测试使 VS2008 可以愉快地运行它们。
有任何想法吗?
c# - MethodBase 是否提供文件名和行号?
我正在尝试CompileTimeValidate(MethodBase method)
为 postsharp 写一个。问题是当发生违规时,它只在错误列表中显示描述。“文件”和“行”列是空的。
我可以使用的唯一信息MethodBase
是应用属性的方法的实例。
有没有办法从MethodBase
对象中获取源文件和行号详细信息?
c# - 为 Postsharp laos 寻找好的教程/文档,了解“图书馆员”示例
谁能指出我在 PostSharp / laos 插件上的良好学习材料。我喜欢 Postsharp 附带的“图书馆员”样本,它确实涵盖了很多东西,但很难理解。样本上也有任何解释/文章吗?
postsharp - Postsharp:对我的要求有好处吗
我正在考虑使用 PostSharp (www.postsharp.org) 作为我的应用程序的一部分编写我自己的自定义日志系统(位于 log4net 之上)。您认为 PostSharp 符合所有这些要求吗?
这是我的要求:
我希望能够编写适用于方法、属性、字段、类和程序集级别的自定义“方面”。
我希望能够将该工具用于 .NET 2.0 项目以及 3.5,特别是在 WinForms 和 ASP.NET(包括 MVC)和 WCF 项目中
我不想在客户端机器/部署点运行我自己的软件之外的单独工具 (exe)。
首选:最好是我希望避免重新分发任何工具的 dll。但是不使用应用程序重新分发运行时 dll 的要求可能是一个推动要求 - 所以跳过它。
我想将此扩展为主要为我的应用程序编写自定义日志记录方面。
我将重新分发我的 Web 应用程序和 Windows 窗体应用程序。所以我想确保我将要使用的工具不收取任何特许权使用费或许可费,并且它不会限制我使用一种特定类型的许可。我正在销售我的应用程序的商业许可证。
postsharp - Postsharp 和 NLog,一般设计问题
这就是我打算做的:
- 我想编写一个面向方面的 NLog 特定 onmethodexecutionaspect 类。
- 但我仍然想确保调用代码使用通用属性类进行属性化,该属性类将在内部加载 NLog 或 TraceX 等特定于方法执行方面的实现,具体取决于应用程序配置文件中指定的内容。
解决这个问题的最佳方法是什么?
我正在考虑编写一个从 postsharp 方法执行方面派生的抽象类。然后我将有另一个 dll,它将有一个特定于 NLog 的实现......所以它将有一个类,该类将派生自我在通用 dll 中创建的通用方法执行方面类。
消费代码将仅引用我编写的通用类 dll,如果这是在应用程序配置中指定的,则该类将加载我编写的 NLog 特定 dll。
说得通?
c# - 使用 PostSharp 重试异常方法
对于我的一个 DAL 模块,我有很多重复的管道,形状如下:
并且最近发现了 PostSharp,我试图用一个属性替换这些管道代码。
我最初的计划是: - 扩展 OnMethodInvocationAspect 并在方法调用期间记住方法调用事件 args - 实现 IOnExceptionAspect 并实现 OnException 以检查异常类型,如果需要重试,请使用原始调用中的方法调用事件 args 对象,即:
但是一旦我添加了 IOnExceptionAspect,就不会再触发 OnInvocation 方法了。
有谁知道我需要在这里做什么?或者也许我应该使用更合适的方面?
谢谢,
c# - OnExit 未通过 PostSharp 在 asp.net 项目中进入
我已经设置了 PostSharp,它似乎正在工作,但我没有让它进入 OnExit(我已经记录了设置以确保它正在工作)......
用 asp.net 配置有点棘手 - 或者只是我......我正在使用 1.5 新版本
我的 web.config 中基本上有以下内容,我必须添加 SearchPath 否则它找不到我的程序集
我已经设置了跟踪,但对我来说奇怪的是它似乎构建到临时目录,也许这是我的问题,我不确定..因此我做了 F5 ... 是否可以命名输出目录和输出文件??如您所见,它正在临时目录中编辑一个 DLL,因此 IIS 不再受控制,因此它不会执行它???
使困惑!:-)
C:\Program Files\PostSharp 1.5\postsharp.exe "/P:Output=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mysitemvc-1.2\c2087140\8ac2dc93\postsharp\App_Web_04ae3ewy .dll" "/P:IntermediateDirectory=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mysitemvc-1.2\c2087140\8ac2dc93\postsharp " /P:CleanIntermediate=False /P:ReferenceDirectory =。/P:SignAssembly=False /P:PrivateKeyLocation= /P:ResolvedReferences= "/P:SearchPath=C:\Source Code\Visual Studio 2008\Projects\mysitemvc\mysitemvc\bin," /V /SkipAutoUpdate "C:\Program Files\PostSharp 1.5\Default.psproj" "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mysitemvc-1.2\c2087140\8ac2dc93\before-postsharp\App_Web_04ae3ewy.dll"
PostSharp 1.5 [1.5.6.627] - 版权所有 (c) Gael Fraiteur,2005-2009。
信息 PS0035: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mysitemvc-1.2\c2087140\8ac2dc93 \postsharp\App_Web_04ae3ewy.il" /QUIET /DLL /PDB "/RESOURCE=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mysitemvc-1.2\c2087140\8ac2dc93\postsharp\App_Web_04ae3ewy。 res" "/OUTPUT=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mysitemvc-1.2\c2087140\8ac2dc93\postsharp\App_Web_04ae3ewy.dll" /SUBSYSTEM=3 /FLAGS=1 / BASE=18481152 /STACK=1048576 /ALIGNMENT=512 /MDV=v2.0.50727
resharper - 任何使用 PostSharp 和 ReSharper 的经验
有没有人将 PostSharp 与 ReSharper 一起使用,如果是,我应该期待什么问题?
.net - Mono Cecil vs. PostSharp Core vs. Microsoft CCI 用于实现 AOP 框架
在功能、易用性、文档、示例、社区/支持、VS 集成、已知实现、长期可行性和构建自定义 AOP 框架的构建速度方面,哪个更好?
我将从我所知道的开始(到目前为止我只尝试过 PostSharp):
- Microsoft Common Compiler Instrastruture (CCI):我读过它用于 FxCop、ILMerge、Spec# 和代码合同。它似乎是非常低的级别,因为它甚至不负责纠正使用它修改 IL 时被破坏的分支代码的偏移量。
- PostSharp已经 5 岁了,具有许多 AOP 功能(例如,抽象了一些您需要手动完成的事情,而 IL 离开),源代码可用,仅由一个人开发/支持,但他正计划将其作为一项业务,有文档但可能会更好,构建需要大约两倍的时间,关于如何注入 IL 的样本非常少,并且版本 2.0 将很快发布,这有望得到很大改进。
- Mono Cecil:由一个人编写,是 Mono 套件的一部分,并且有一个名为 Reflexil 的 Reflector 插件,它使用 Mono Cecil。