Я использую ninject для внедрения зависимостей в моем проекте и KingAOP для аспектов.
Коды Ninject
public class BusinessModule : NinjectModule
{
public override void Load()
{
Bind<ICommitmentService>().To<CommitmentManager>().InSingletonScope();
Bind<ICommitmentDal>().To<EfCommitmentDal>().InSingletonScope();
}
}
Испытательный аспект
public class TestAspect : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
Debug.WriteLine("OnEntry: Hello KingAOP");
}
public override void OnSuccess(MethodExecutionArgs args)
{
Debug.WriteLine("OnSuccess: Hello KingAOP");
}
public override void OnExit(MethodExecutionArgs args)
{
Debug.WriteLine("OnExit: Hello KingAOP");
}
}
Менеджерский класс
public class CommitmentManager : ICommitmentService
{
private readonly ICommitmentDal _disclaimerDal;
public CommitmentManager(ICommitmentDal disclaimerDal)
{
_disclaimerDal = disclaimerDal;
}
[TestAspect]
public void Test()
{
Debug.WriteLine("Test");
}
}
Чтобы использовать KingAOP, мне нужно пометить объект динамическим.
Ex.
dynamic helloWorld = new HelloWorld();
helloWorld.HelloWorldCall();
Но я создаю объект через ninject.
Есть ли способ пометить объект как динамический в Ninject?