C# 使用MVP区分两种上下文中使用的控件的演示者是可行的

C# 使用MVP区分两种上下文中使用的控件的演示者是可行的,c#,winforms,design-patterns,mvp,C#,Winforms,Design Patterns,Mvp,我有一个WinForms UserControl,我在两个不同的应用程序中使用它。Word加载项和另一个WinForms应用程序。我希望能够根据我所处的应用程序来区分签入操作的实现,因为这两个应用程序都有独特的问题 然而,我正在为如何处理每个应用程序特有的UI问题而苦苦挣扎。例如,我想检查Word加载项中的活动文档,但显然不想在WinForms应用程序中执行此操作。我已经解决了我可以注入演示者的问题,但我知道我应该避免使用UI逻辑。我需要另一个层还是需要编写两个不同版本的控件,它们有很多相似之处

我有一个WinForms UserControl,我在两个不同的应用程序中使用它。Word加载项和另一个WinForms应用程序。我希望能够根据我所处的应用程序来区分签入操作的实现,因为这两个应用程序都有独特的问题


然而,我正在为如何处理每个应用程序特有的UI问题而苦苦挣扎。例如,我想检查Word加载项中的活动文档,但显然不想在WinForms应用程序中执行此操作。我已经解决了我可以注入演示者的问题,但我知道我应该避免使用UI逻辑。我需要另一个层还是需要编写两个不同版本的控件,它们有很多相似之处。

您最好在一个单独的项目中抽象出常见的函数,并为该抽象创建两个不同的实现。

您似乎需要基于主机应用程序组合视图。将平台可发现性逻辑封装在presenter中,并使用view render/initialization中的逻辑来使用正确的控件,这难道对您没有好处吗?