问题标签 [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# - 编译后将属性注入 .NET 类
我想在不引用 WPF 程序集的情况下实现 WPF 的 MVVM 模式的 ViewModel 部分。有问题的部分是命令路由,它要求 ViewModel 实现类型的属性,ICommand
以便命令绑定可以工作。
现在,我可以避免ICommand
并简单地将属性声明为object
. 一切仍然有效,就是这样。但困扰我的是,我仍然必须声明它们,我真的不想这样做,因为它们感觉就像样板代码。
我的 ViewModel 目前看起来像这样:
启用命令处理程序(一个和一个可选)的CommandHandlerAttribute
运行时发现,而实际上是将自身注入属性设置器和调用的一个方面。我通过使用编译时 IL weaver来实现这一点。Action
Func<bool>
BoundPropertyAttribute
INotifyPropertyChanged
理想情况下,我也想隐含最后一行(SayHello 属性)。如果不是 WPF 的要求,那么将它放在源代码中是没有意义的。
因此,很自然地,我正在考虑使用CommandHandlerAttribute
方面将必要的 IL 注入到类中,并从本质上创建属性 post-compile。这是相当困难的,尽管一个好的 IL 编织器(例如PostSharp)可以大大简化它。
在我踏上这段旅程之前,我想听听大家对我的方法的看法。好听吗?有没有更好的办法?你会/怎么做?
c# - 如何向 PostSharp 属性添加参数?
我有一个简单的 PostSharp 日志记录属性:
我想通过将有关方法参数的信息添加到日志条目来使此属性更加灵活,但前提是它需要。
带有 IF 的伪代码是我不知道该怎么做的。如何将其传递给属性?我希望它看起来像这样,但我不知道如何在属性代码中处理它:
c# - 使用 PostSharp 1.0 的 ClickOnce 应用程序似乎需要 GAC 中的 1.5 程序集
我已经在以前安装过 1.0 的机器上安装了 PostSharp 1.5。现在,我链接到 1.0SP1 程序集的应用程序由于某种原因开始请求 1.5 程序集在客户端的 GAC中。有人知道为什么吗?(我在 PostSharp 论坛上问过,但没有收到回复。)
c# - 这方面有什么问题
我只希望在设置属性时调用它。为什么这不起作用?
log4net - Postsharp 和 log4net 和 log4postsharp
我偶然发现了 log4postsharp站点,它是一个很棒的工具,它使用 postsharp 在编译时将 log4net 语句注入到您的代码中。
当前版本的 log4postsharp 使用 Postsharp 1.0,它有一些限制。有谁知道是否有使用 Postsharp 1.5 的 log4postsharp 编译版本可用?
c# - Postsharp - 获取调用程序集?
使用 Postsharp OnMethodBoundaryAspect 时,是否有某种方法可以获取启动对给定方法的调用的调用程序集?GetCallingAssembly 只返回被调用方法所在的程序集。
注意 - 我在 postsharp 论坛上遇到问题,否则我会在那里发布。
c# - PostSharp 对象映射器
我正在考虑将 PostSharp 用于实体到 DTO 和 DTO 到实体的映射器。为大约 100 个实体手动执行该任务将是维护的噩梦。我已经在 codeplex 上查看了 AutoMapper,但我认为开销可能是我的情况下的一个严重问题,此外我觉得 PostSharp 可以让我对映射约定进行一些额外的控制。如果有人可以分享这个问题之王的经验,那就太好了。
我想的方向是这样的(如果这不可能,请有人告诉我):
我打算坚持上课的方面将用内容填充接下来的两个方法:
第一种方法将返回基于 DTO 的实体,第二种方法将执行相反的操作。在我计划遍历每个属性的方面内,创建新目标并将属性的值分配给目标对象的对应项。这是否可以在编译时完成而没有任何运行时开销?
events - PostSharp - 自动化事件订阅和集合添加
我想使用 PostSharp 解决的一个重复的例行任务是事件订阅和集合添加。我想为每个子对象的事件订阅父对象过程(子对象包含在列表中)。我还想将父级的所有列表添加到父级的主列表中。我应该使用什么方面或者我应该考虑哪个方向?
下面列出了上述问题的示例...
我有以下界面:
具有以下状态类型:
上面的结构和实现是:
c# - 哪些工具执行 IL 的编译后修改?
最近提到 PostSharp 让我想起了这一点:
去年我工作的地方,我们正在考虑使用 PostSharp 将检测注入我们的代码。这是在 Team Foundation Server 团队构建/持续集成环境中。
考虑到这一点,我对 PostSharp 的运行方式产生了一种烦人的感觉——它编辑了编译器生成的 IL。这让我有点困扰。
我不太担心 PostSharp 不能正确完成它的工作。我担心这是我第一次记得听说过这样的工具。我担心其他工具可能不会考虑到这一点。
事实上,随着我们的前进,我们确实遇到了一些问题,因为 PostSharp 对原始 IL 所在的文件夹感到困惑。这破坏了我们的构建。这似乎是由于与解决项目引用的 MSBUILD 目标发生冲突。冲突似乎是由于 PostSharp 使用临时目录来存储 IL 的未修改版本这一事实。
无论如何,当时我没有 StackOverflow 可以参考!现在我知道了,我想问你们大家是否知道在构建过程中编辑 IL 的任何其他工具;或者微软是否在 Visual Studio、MSBUILD、Team Build 等中考虑了这种工具。
更新:感谢您的回答。
底线似乎是,至少在 VS 2010 中,微软确实应该意识到这种事情可能会发生。所以如果VS2010在这方面出现问题,那么微软可能会分担责任。
postsharp - PostSharp OnExceptionAspect 未按预期工作
创建了一个简单的类来测试 PostSharp 中的 OnExceptionAspect。
将属性添加到方法
并调用它。
然而,异常并没有真正被吞掉,这看起来很奇怪。
我还没有找到任何类似的问题,所以我希望有一些小事情我没有做对。任何人?