最佳依赖注入(DI)方法

3
我正在开发一个桌面应用程序,使用WPF来依赖于Web服务以登录并获取许可证信息。这意味着用户登录后,我会在我的桌面应用程序中构建一个客户端对象,其中包含许可证和登录日期等信息。
我使用StructureMap,并想将IMyUser实现传递到我的ViewModels构造函数中(构造函数DI)。我的问题是:如果我要将IMyUser实现传递到构造函数中,我应该将我的StructureMap初始化放在哪里?
在我登录并创建了IMyUserObject之后,我考虑配置StructureMap并将其传递给我的用户对象实例。这在我的应用程序中有点“晚”(通常我会将其放在应用程序类中,以便在应用程序内部首先运行)。
如果这不是正确利用IMyUser和DI的方法,请给予指导,同时也非常欢迎其他解决方案。
1个回答

4
作为一个关于授权的问题,我认为最好使用自定义IPrincipal实现来处理。
当应用程序启动时,请将一个实现分配给Thread.CurrentPrincipal。此初始实例不应授权用户。
当用户登录并接收到许可证信息时,请替换或更新Thread.CurrentPrincipal以授权用户使用应用程序。
这是环境上下文模式的一个示例。您不需要在此交互中涉及StructureMap。

谢谢Mark,我有点希望你能来解救一下:-) 我会研究实现自定义IPrincipal。 - Brian Hvarregaard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接