Подтвердить что ты не робот

Альтернативная альтернатива postSharp, которая поддерживает простые пользовательские атрибуты

Кто-нибудь знает альтернативу opensource для postsharp, которая проста в использовании и поддерживает атрибуты? Я видел AspectDNG, который немного похож, но создание этих атрибутов похоже на код С++ и требует другой формы компиляции

Я знаю о windsor, ninject, Spring.Net и т.д., но ни один из них не имеет настраиваемых атрибутов, таких как postsharp.

Я ищу какую-то программу, которая позволяет мне использовать свои собственные атрибуты с до, после событий.

Буду признателен за любые предложения.

Спасибо

Изменить: этот вопрос, конкретно описывающий эти моменты, которые должны поддерживать атрибуты, ранее не задавался. Поэтому, пожалуйста, не закрывайте этот вопрос. Это не дубликат.

Изменить: почему я боюсь postharp? PostSharp до сих пор был лучшим, но он коммерческий и выглядит неопределенно/рискованно использовать бесплатную версию для большого проекта. Мы никогда не знаем, когда они, возможно, прекратят свою бесплатную версию.

Изменить: Спасибо за все голоса и любимые добавления. До сих пор я нашел это: http://zinject.codeplex.com/, но это на французском языке. Пожалуйста, предоставьте больше предложений, если кто-либо из вас найдет что-нибудь еще.

4b9b3361

Ответ 2

Мы только что выпустили Afterthought.. Из документов:

Afterthought позволяет разработчикам отправлять сборки .NET для добавления кода, который либо не может быть добавлен к исходному источнику, либо не является удобным и эффективным для этого. Примеры включают:

  • Тонкая настройка скомпилированной сборки, для которой у вас нет исходного кода, должна поддерживать/изменять
  • Добавление логики приборов в сборку для целей тестирования, которая не всегда будет частью версии выпуска
  • Реализация утомительных интерфейсов или шаблонов, которые затрудняют простоту ваших усилий по кодированию при непосредственном внедрении.

Итак, что делает Afterthought? Это просто:

  • Создать изменения типа с помощью подкласса "Поправка <" для описания изменений, которые вы хотите сделать.
  • Добавьте атрибуты к вашим типам, указав, какие типы следует изменить и какие поправки применять.
  • Изменить свойства путем добавления новых свойств или изменения логики существующих свойств.
  • Изменить методы путем добавления новых методов или изменения логики существующих методов.
  • Изменить конструкторы путем добавления новых конструкторов или изменения логики существующих конструкторов
  • Внедрить интерфейсы непосредственно по типу, используя существующие свойства/методы, добавляя новые свойства/методы и позволяя Afterthought автоматически реализовывать все остальное Настройте свой проект на вызов Afterthought как шаг после сборки, чтобы применить изменения.

Ответ 3

CciSharp является одной из альтернатив. Подобно PostSharp, это пост-компилятор IL-переписывающий, который использует атрибуты.