我对在大型.net项目中使用PostSharp和
Spring.NET(大约有50万活跃用户)的性能影响表示担忧.
基本上我想要这样的东西:当我创建用户报告时,我不想生成数百万次的日志记录.但是当用户使用该系统时,我想记录他/她的一些活动.大多数AOP工具都没有这种灵活性.
有没有办法将方面附加到单个对象?或者在运行时打开或关闭方面?
最佳答案 我对PostSharp和Spring.NET的理解是你在设计时定义你的方面,切入点或类似的东西.当您在打开或关闭方面或更改切入点等方面使用类中的对象时,您无能为力.
你得到了你在课堂设计时定义的内容.无论你使用一个对象,还是一百万个类的对象.你应该非常小心地使用它们.否则,你可以用脚射击你的脚.
你真正想要的是一个AOP工具,它解决了对象级别而不是类级别的方面.有一篇文章Add Aspects to Object Using Dynamic Decorator.
对我而言,方面是系统要求.系统要求是操作要求,在使用对象时,最好在运行时在对象级别处理.
说实话,我不明白为什么大多数AOP工具会在设计阶段尝试解决系统要求.这可以解释为什么这么多年后他们的采用仍然如此有限.