Мне нужно отказаться от использования PostSharp, потому что он не будет работать с обфускацией/объединенными сборками. По крайней мере, я не вижу никакого способа заставить его работать (он сбой при запуске приложения, когда сборки запутаны)
Мне нужно перехватить некоторые методы в моем приложении (вызов специального кода вместо оригинальных методов - OnMethodInvocationAspect)
Любой совет?Любая альтернатива PostSharp?
ответ
Spring.NET имеет функции AOP, которые сотканы во время выполнения, поэтому они должны работать с обфускамированными сборками.
http://www.springframework.net/
Документация:
http://www.springframework.net/doc-latest/reference/html/aop.html
PostSharp несколько поддерживает ILMerge. См. http://www.postsharp.org/blog/postsharp-and-ilmerge. Но там есть проблемы с обфускации сборок.
Поскольку аспекты сериализуются во время сборки, их нельзя десериализовать, если тип аспект был запутан. Решение заключается не в том, чтобы запутать любой сериализуемый тип. Другим решением является не сериализация аспектов (см. AspectConfigurationAttribute.SerializerType в PostSharp 2.0 и использование сериализатора MsilAspectSerializer).
Существуют проблемы, когда аспекты применяются к общим методам и методам общих типов (причина в том, что PostSharp использует отражение, основанное на именах методов, в данном случае, для устранения ошибок в CLR).
-gael
Аспект-ориентированное программирование является лишь частным случаем преобразования программы. Если вы можете применить программные преобразования с помощью инструмента, вы можете легко выполнить AOP.
Наш DMS Software Reengineering Toolkit - это программа преобразования программ , которая обрабатывает многие языки, включая C, C++, Java, COBOL и даже C# 4.0.
Для получения более подробной информации см. Aspect Oriented Programming using DMS.
NCop является композитом аспект рамки для платформы .NET, вдохновленный сообщение Sharp
Sheep Aspect является альтернативой открытым исходным АОП инструмент для платформы .NET, вдохновленный AspectJ
- 1. любая более быстрая альтернатива?
- 2. Самостоятельный объект - любая альтернатива
- 3. Любая альтернатива ограничениям?
- 4. Любая альтернатива @GrabConfig?
- 5. Любая бесплатная альтернатива Robohelp?
- 6. Любая альтернатива карте Mapcurl?
- 7. Любая альтернатива fstat?
- 8. Любая альтернатива для пар?
- 9. Любая альтернатива движку Alternativa3D?
- 10. Любая альтернатива пиренейской колотушке?
- 11. MyLocationOverlay устарел, любая альтернатива?
- 12. Что такое OpenSAML? Любая альтернатива?
- 13. Mercurial ненадежные субрепозиции. Любая альтернатива?
- 14. Любая альтернатива шаблонам страниц ASP.NET?
- 15. Любая альтернатива для Apache Nutch?
- 16. c2dm не поддерживается, любая альтернатива?
- 17. Webpack DefinePlugin медленность. Любая альтернатива?
- 18. BackupManager - любая альтернатива «bmgr wipe»?
- 19. Любая другая альтернатива для require.js?
- 20. icu4j слишком большой, любая альтернатива?
- 21. Любая нулевая безопасная альтернатива ArrayList.addAll?
- 22. Любая альтернатива Обложке на Дженкинсе?
- 23. Ванильная альтернатива функции jQuery $ .data(): любая собственная альтернатива javascript?
- 24. Hibernate Search, Lucene или любая другая альтернатива?
- 25. Любая хорошая альтернатива для контроля проверки ASP.NET?
- 26. Любая альтернатива redirect_to в приложении rails api?
- 27. Какова продолжительность кэша HttpRuntime (любая простая альтернатива?)
- 28. Любая свободная альтернатива для Oracle SQL Developer
- 29. любая альтернатива переопределению метода «equals()» в java?
- 30. Любая альтернатива типу массива в SQL Server
NCop кажется, анти-паттерна. Зачем вам оформлять интерфейс с конкретным типом класса для разрешения стиля IoC? Если у меня есть несколько реализаций интерфейса, мне нужно идти и изменять определение интерфейса каждый раз, когда я добавляю новую реализацию? – Hemant
NCop - это концептуальная библиотека композиции, а не библиотека IoC (хотя она инкапсулирует концепцию IoC.) Вам нужно только украсить составной тип конкретными классами, а не интерфейсами ролей. См. Https://github.com/sagifogel/NCop/wiki/Mutliple-mixins. – Sagi