维护相关ID

时间:2015-03-26 09:48:22

标签: c# .net asp.net-mvc design-patterns

我正在进行系统设计。我在我的应用程序中实现了多个层,其中Web层调用业务层,业务层调用数据层。

我想为每个调用保留一个公共的共同关系id,这样我就可以将输入记录到任何方法中,并且在出现任何错误的情况下,可以使用相同的co-relation id将异常记录到数据库中,最后如果出现任何错误,需要向用户屏幕显示共同关系ID。

我已经使用WCF服务实现了这一点,我将消息id作为共同关系id并在整个请求生命周期中使用它。但我不确定如何使用普通库实现这一点。我不想将每个方法上的共同关系id作为参数或参数传递给每个类的构造函数。

任何人都可以指出我的任何文章或实施方法。

由于

2 个答案:

答案 0 :(得分:0)

您应该提供有关图层结构的更多信息。

也就是说,如果您的所有业务服务都是无状态的,那么可以假设您为每个请求实例化一个新的XXXService类(例如CustomerService)。

您可以做的是将相关ID传递给您实例化的每个服务类,例如使用依赖注入框架。因此,在CustomerService类中,您可以访问为您的请求生成的相关ID。

答案 1 :(得分:0)

我会拥有所有域名服务&#39;方法需要executionContext参数(如果需要,可以是Dictionary<string, object>或域类)。随着需求在未来发生变化,这可以实现更大的可扩展性。