C# 在应用程序启动时加载数据和执行各种检查的好模式是什么?(桌面)

C# 在应用程序启动时加载数据和执行各种检查的好模式是什么?(桌面),c#,wpf,desktop-application,C#,Wpf,Desktop Application,我有一个应用程序,需要通过web服务调用加载数据,并执行各种权限和数据检查。相当典型。当应用程序启动时,我正在后台执行此操作,但是它是一个向导类型的应用程序,因此在所有这些都完成之前,用户无法执行很多操作。如果在执行此操作时出现任何问题,我希望向用户提供一条有用的消息(您“缺少权限x”或“检索y失败”) 对于以下内容,请理解我可以改变我做某事的方式,但我不能改变我需要执行的步骤。这也被简化了 一个典型的项目可能是这样的。我需要检索用户所属组的列表。但是,首先我需要检查用户是否有权限查看此组列表,

我有一个应用程序,需要通过web服务调用加载数据,并执行各种权限和数据检查。相当典型。当应用程序启动时,我正在后台执行此操作,但是它是一个向导类型的应用程序,因此在所有这些都完成之前,用户无法执行很多操作。如果在执行此操作时出现任何问题,我希望向用户提供一条有用的消息(您“缺少权限x”或“检索y失败”)

对于以下内容,请理解我可以改变我做某事的方式,但我不能改变我需要执行的步骤。这也被简化了

一个典型的项目可能是这样的。我需要检索用户所属组的列表。但是,首先我需要检查用户是否有权限查看此组列表,否则另一个调用将失败。一旦我有了这个列表,我就需要检查他们在每个项目中是否有特定的权限,并放弃那些不适用的权限。如果他们在任何组中都没有权限,请通知用户

最初,我在LoadAndCheck()类型调用中调用了所有内容,以计算出我需要的所有项目。显然,这是一个很大的笨重的

然后,我将每个步骤分解为一个模式,其中每个项都位于接口后面的一个类中

interface IInitialize {
    bool InitializeAction();
    void OnFailure();
}
(即,选中此权限、加载此列表、选中该权限)。每个类执行一个小操作,如果该操作失败(加载数据)或错误(权限检查),则包含要执行的步骤,以通知用户该问题

然后,我可以在这些类中循环,在一个步骤失败时,不执行以下步骤,而是将内容配置为通知用户。如果我选择这种模式,这也有助于我沿着这条道路前进

然而,这种模式有点不对劲,尽管它比一次大通话中的一切都好。也许这只是我给事物起的名字。然而,我的大脑被抹掉了,我再也找不到更好的了


那么,在启动应用程序时,您有什么好的模式来执行类似的操作吗?

我个人有一个SecurityManager静态类,我调用该类的方法来检查某些类型(组/项目/用户等),方法包括

HasTradePermission(PermissionType type, User user, Trade trade);
HasInvoicePermission(PermissionType type, User user, Invoice invoice);
只有在这个方法中,我才开始调用is part of group/what group/这个组是否有这个和这个权限等等,因此就应用程序所知,它与的所有交互都是“HasPermission”对象,因此在我的应用程序中,我只需迭代例如Trades,然后调用HasTradePermission

在这些has permission对象中,我将获取用户所属的组列表,并检查是否与TradePermissionGroups中的一个组匹配,等等