我不得不放弃使用PostSharp,因为它不适用于混淆/合并的程序集。至少,我没有看到任何方式来让它工作(它崩溃在应用程序启动,当程序集被混淆)
我需要拦截我的应用程序中的一些方法(调用特殊代码而不是原始方法 - OnMethodInvocationAspect)
有什么建议?任何PostSharp替代?
3
A
回答
1
Spring.NET具有在运行时编织的AOP特性,所以应该使用混淆程序集。
http://www.springframework.net/
文档:
http://www.springframework.net/doc-latest/reference/html/aop.html
4
PostSharp有所支持ILMerge。请参阅http://www.postsharp.org/blog/postsharp-and-ilmerge。但有混淆程序集的问题。
由于方面在构建时序列化,所以如果方面类型被混淆了,它们就不能被反序列化。解决方案不是混淆任何可序列化的类型。另一种解决方案不是序列化方面(请参阅PostSharp 2.0中的AspectConfigurationAttribute.SerializerType,并使用序列化器MsilAspectSerializer)。
当方面应用于通用类型的泛型方法和方法时(这是因为PostSharp使用了基于方法名称的反射来解决CLR中的错误)存在问题。
-gael
1
面向方面编程仅仅是程序转换的一个特例。 如果您可以使用工具应用程序转换,则可以轻松执行AOP。
我们的DMS Software Reengineering Toolkit是一个程序转换引擎 ,它可以处理许多真正的语言,包括C,C++,Java,COBOL甚至C#4.0。
有关更多详细信息,请参阅Aspect Oriented Programming using DMS。
3
NCop是用于通过邮政夏普启发.NET平台的复合纵横框架
Sheep Aspect 是用于通过AspectJ的
相关问题
- 1. waitForPageToLoad的任何替代
- 2. 开源替代postSharp,支持简单的自定义属性
- 3. PostSharp:删除/替换后台字段
- 4. PostSharp适用于授权任务吗?
- 5. 任何DBContext生成器的替代品?
- 6. 任何非私有API的替代品?
- 7. 是否有任何替代mySQL的“last_update_ID()”?
- 8. 是否有任何替代GetElementById?
- 9. 是否有任何IDA Pro替代品?
- 10. mb_str_replace()...很慢。任何替代品?
- 11. 如何正确代替Gradle'jar'任务?
- 12. 是否有任何替代功能?
- 13. 是否有任何替代yUML
- 14. Windows服务或任何其他替代
- 15. 任何替代maven glassfish插件?
- 16. PyPy中是否有任何替代sys.getsizeof()?
- 17. 是否有任何svn_load_dirs.pl的替代品?
- 18. 任何好的替代QGIS的python
- 19. 反射循环的任何LINQ替代?
- 20. ArrayList removeAll()返回false。任何替代品?
- 21. 任何MySQLTuner等效/替代Windows?
- 22. curl_exec()的任何替代方法?
- 23. 任何使用MS Kinect的替代品?
- 24. Apache Nutch的任何替代方法?
- 25. JGo的任何开源替代品?
- 26. 是否有任何替代document.form.submit()?
- 27. C#Backgroundworker比赛 - 任何替代?
- 28. 是否有任何替代System.IO.DirectoryInfo.Exists
- 29. 是否有任何替代JTS WKTReader?
- 30. Sendkeys.Send()for right alt key?任何替代品?
NCop似乎是一个反模式.NET平台替代开源AOP工具。为什么要用IoC风格解析的具体类类型来装饰接口?如果我有多个接口实现,那么每次添加新的实现时,是否需要去更改接口定义? – Hemant 2016-10-13 02:02:02
NCop是一个组合的概念库,而不是IoC库(尽管它封装了IoC的概念)。您只需要用具体的类而不是角色接口来修饰组合类型。请参阅https://github.com/sagifogel/NCop/wiki/Mutliple-mixins – Sagi 2016-10-13 18:59:14