Aspectj и перехват частных или внутренних методов

Я сконфигурировал AspectJ с помощью Spring, и он отлично работает, когда "ловит" общедоступные методы, вызываемые из вне класса. Теперь я хочу сделать что-то вроде этого:

public class SomeLogic(){

   public boolean someMethod(boolean test){

      if(test){
        return innerA();
      } else {
        return innerB();
      }
   }


   private boolean innerA() {// some logic}
   private boolean innerA() {// some other logic}

}

SomeLogic - это SpringBean. Методы innerA () и innerB () могут быть объявлены как частные или общедоступные - метод someMethod () вызывается из действия Struts. Можно ли с помощью AspectJ отловить методы innerA () или innerB (), вызываемые из someMethod ()?

Моя конфигурация (на основе XML): Прямо сейчас я реализовал (как предлагает MSDN) настраиваемый хост T4 для генерации моих результатов T4, и я использую его следующим образом: ...

Я создаю подключаемый модуль в VS 2010, и я застрял на T4 поколение. Прямо сейчас я реализовал (как предлагает MSDN) пользовательский хост T4 для генерации моих результатов T4, и я использую его следующим образом:

        const string content = @"c:\Simple.tt";
        var engine = new Engine();
        var host = new MyTemplateHost();            
        var result = engine.ProcessTemplate(File.ReadAllText(content), host);
        foreach (CompilerError error in host.Errors)
        {
            Console.WriteLine(error.ErrorText);
        }

Это работает, пока я не передам параметр в шаблоне. Как только я создаю параметр в файле .tt, Хост приходит в ужас, говоря, что не знает, как его решить. Я видел, что вы можете использовать TemplateSession для этого, но не понял, как передать его моему хосту? Есть ли лучший способ генерации кода из .tt с использованием C # и передачи параметров во время выполнения? Возможно, я на ложном пути.

8
задан Askolein 17 November 2012 в 16:24
поделиться