大家好
我想问一下,在这些情况下如何使用策略注入应用程序块来记录方法的进入和退出:
案例1:如果记录了Web表单控件的事件处理程序,您知道该类假设_Default必须继承自 System.Web.UI.Page 类,所以我们不能从 MarshalByRefObject 类继承我们的类,所以日志记录不起作用。
案例2:如果我们有一个静态类,我们必须在其中记录这些方法,我们可以做些什么来从 MarshalByRefObject继承这个类 calss,以便获取伐木作品。
答案 0 :(得分:1)
听起来我觉得他们有一些愚蠢的要求才能应用日志... 这可能是一个offtopic,但您可能希望查看Spring.AOP框架以将日志记录应用于您的对象,而无需从MarshalByRefObject继承。 (在多重继承截断的语言中,我认为这是一个烦人且极端的要求。)
答案 1 :(得分:1)
关于案例1,策略注入块能够对您拥有接口的对象进行操作。如果你没有考虑接口,那么使用Refactor-> Extract Interface操作就可以在Visual Studio中轻松完成。
答案 2 :(得分:0)
关于案例2,你的“静态”类实际上不是一个静态类。它可以从MarshalByRefObject继承或实现您指定的接口。然后它可以有一个私有构造函数和一个政策注入的单例实例。所有静态方法都只是在类的单例实例上调用相应的(策略注入的)实例方法。