如何使用 IWizard 在运行时添加"Using "语句



在编译时我们有

using MyNamespace;

到目前为止,这仍然有效,但最近要求发生了变化,它需要根据用户选择的应用程序类型在运行时进行处理。

那么,如何在 IWizard 中使用 c# 代码添加"使用"命名空间语句?

我知道如何在运行时添加引用

 var appProject = project.Object as VSProject;
 appProject.References.Add(Mydll);

我想要的是运行时

using System.IO;
using MyNamespace-> should come at runtime based on the application selected

谢谢

我刚刚遇到了一个类似的问题,虽然它在运行时并没有完全更改命名空间,但它会在运行时从不同的命名空间获取对象等。 如果你想改变命名空间,很可能你有具有相同名称和接口但不同实现的类,否则你的代码需要改变。 如果创建一个新的 lib 和命名空间,只包含要使用的所有类的接口,你需要做什么。 然后,使不同命名空间中的类继承这些接口,以便可以将类编码为仅使用接口而不是特定实现。 然后,要选择要在运行时使用的实现,请使用"依赖注入"来选择要通过配置文件插入的正确实现,或者让应用程序的其他部分配置注入。依赖注入可能有点难以上手,但一旦你了解了它,它会让你的生活变得轻松得多。 Ninject是一个很好的简单的依赖注入框架。

最新更新