Я пришел к тому, что я хочу выполнить 2 задачи в своем приложении ASP.NET, которые могут быть выполнены с использованием некоторой инфраструктуры AOP, но они имеют различную природу:
- Внедрение зависимостей для моих контроллеров и сервисов
Я создал собственный атрибут NotNullAttribute
и пометил его некоторыми параметрами или свойствами метода вместо того, чтобы выдавать ArgumentNullException
, если эти параметры или свойства были нулевыми. Я хочу, чтобы AOP Framework проверил эти атрибуты во время компиляции и вместо этого добавил причины броска. Пример следует:
//original code that I write
public void MyMethod([NotNull]string param1){
//do something
}
.
//code actually being compiled - after AOF processing/weaning
public void MyMethod(string patam1){
if(param1 == null){
throw new ArgumentNullException("param1");
}
//do something
}
Так что мне нужен фреймворк (даже не обязательно должен быть AOP, но, думаю, так и должно быть), который позволил бы мне просто выполнить обе эти задачи.
У меня есть некоторые дополнительные требования:
- небольшая площадь, 1 или 2 сборки
- интеграция с VS - я просто хочу нажать
Ctrl+F5
для компиляции, и фреймворк работает, внедряет зависимости, добавляет код выдачи исключений без , который я даже не знаю об этом. Я не хочу запускать предварительную компиляцию из командной строки или чего-то в этом роде.
- для генерации кода, генерирующего исключение, я бы хотел написать классы. Нравится обычные аспекты. Не XML, нет конфигурации (соглашения приемлемы). Для внедрения зависимостей я также предпочитаю классы, но XML или другой файл конфигурации приемлем, но он должен быть достаточно простым для использования кем-то, кто действительно не знает XML и ему не очень нравится.
Есть ли такие рамки? Если есть еще какие у них плюсы / минусы?
РЕДАКТИРОВАТЬ: О, да, я забыл очень важный думать: рамки должны быть бесплатно.