如何确定哪个页面在另一个项目中打开了一个类?

时间:2010-09-13 15:37:19

标签: c# asp.net

我为我的数据层使用一个单独的项目,并在其中调用clsData.cs中的一个类。我想知道来自表示层的哪个页面(在解决方案中的另一个项目中)从clsData方面引用它,如果可能的话

3 个答案:

答案 0 :(得分:1)

使用像log4net这样的专用库,或使用new StackTrace().GetFrames()来获取对当前堆栈的引用;它包含您需要的所有信息,包括页面,方法,行号等。

您可能希望处理global.asax中的Application_Error方法;因为所有未捕获的异常将路由到该方法。

答案 1 :(得分:1)

为什么不能将公共属性保留在数据访问层中,您可以从调用类中设置这些属性以进行日志记录?

答案 2 :(得分:0)

您可能需要首先了解在应用程序中创建图层的原因。据我所知,你想知道究竟是什么导致了一个特定的错误。因此,您可能需要考虑不同的解决方案,而不是通过访问有关调用方的信息来记录数据层中的错误。

如果我们在不同的UI层中的某个其他解决方案中使用相同的数据层项目,或者可能是控制台应用程序,那么您是否希望再次重写整个数据层以支持调用数据层类的日志记录?

每当你创建一个类库(数据层)时,我建议你只在该范围内执行与错误/异常相关的错误记录,并将错误/异常原样抛给调用者,以便调用者可以得到正确的关于发生的事情的想法和来电者可以采取必要的步骤。

我不确定你的要求是什么,但总是建议将异常抛给调用者并记录调用者端。