我正在进行系统设计。我在我的应用程序中实现了多个层,其中Web层调用业务层,业务层调用数据层。
我想为每个调用保留一个公共的共同关系id,这样我就可以将输入记录到任何方法中,并且在出现任何错误的情况下,可以使用相同的co-relation id将异常记录到数据库中,最后如果出现任何错误,需要向用户屏幕显示共同关系ID。
我已经使用WCF服务实现了这一点,我将消息id作为共同关系id并在整个请求生命周期中使用它。但我不确定如何使用普通库实现这一点。我不想将每个方法上的共同关系id作为参数或参数传递给每个类的构造函数。
任何人都可以指出我的任何文章或实施方法。
由于
答案 0 :(得分:0)
您应该提供有关图层结构的更多信息。
也就是说,如果您的所有业务服务都是无状态的,那么可以假设您为每个请求实例化一个新的XXXService
类(例如CustomerService
)。
您可以做的是将相关ID传递给您实例化的每个服务类,例如使用依赖注入框架。因此,在CustomerService
类中,您可以访问为您的请求生成的相关ID。
答案 1 :(得分:0)
我会拥有所有域名服务'方法需要executionContext
参数(如果需要,可以是Dictionary<string, object>
或域类)。随着需求在未来发生变化,这可以实现更大的可扩展性。