如何在C#中使用Factory模式来选择我想要的GUI:WPF或控制台?

时间:2019-01-11 11:54:15

标签: c# wpf factory

我制作了一个计算器程序。我做了四个项目。

  1. 具有计算器逻辑的类库。
  2. 在wpf应用程序中的计算器GUI。
  3. 控制台应用程序中的计算器gui。
  4. 工厂类库,它是“启动项目”。

GUI应用程序(WPF或控制台)效果很好!他们在依赖项中拥有“逻辑类库”。

现在,我想从我的客户端中选择他想要的GUI,所以我为他编写了Factory类库并将其设置为“启动项目”。

但是它不起作用,因为错误消息“无法直接启动类库”。

该怎么办?

感谢前进。

2 个答案:

答案 0 :(得分:0)

类库不能是启动项目。它必须是exe,而不是dll。

我要做的是:

  • 创建一个类似start.bat的东西,询问用户他想要哪个gui版本。然后批处理将运行wpf.exe或console.exe

  • 创建将执行相同操作的简单控制台应用程序。启动exec后,它将关闭。

控制台应用程序或批处理可能还会读取某些注册表项,并基于该调用适当的执行程序。

答案 1 :(得分:0)

最简单的方法是创建另一个应用程序,它的唯一任务就是启动GUI版本或CLI版本。

您可以在专用的console application中进行此操作,但随后会看到console box弹出窗口一秒钟。

或者,您可以使用WinForms应用程序并使用以下代码行:

using System.Diagnostics;

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string [] args)
    {
        // disable these lines:
        //Application.EnableVisualStyles();
        //Application.SetCompatibleTextRenderingDefault(false);
        //Application.Run(new Form1());

        //read settings file or parse arguments

        //start the GUI or CLI process
        Process process = new Process();
        process.StartInfo.FileName = "some.exe";
        process.Start();
        //optional
        process.WaitForExit();
    }
}