如何在C#中执行文本文件中的if语句

时间:2018-09-29 17:16:46

标签: c#

我想知道是否有人知道如何使用c#中的文本文件运行语句。 谢谢。

1 个答案:

答案 0 :(得分:1)

在C#中,您可以在运行时以编程方式加载程序集。为了使该程序集可用,最好让它实现一个接口。完全取决于您在此界面中输入的内容。例如

public interface IMyAddIn
{
    string GetUrl(string parameter);
}

现在,您至少需要3个程序集,即Visual Studio中的3个项目。一个是您的可执行项目(主项目)。另一个必须是声明此接口的类库项目(DLL)(我们称其为合同)。第三个也是类库项目(DLL),并实现了该加载项。

可执行文件和外接程序项目都必须引用合同项目。

现在,可执行项目可以像这样加载加载项:

var asm = Assembly.UnsafeLoadFrom(fileName);
string addInInterfaceName = typeof(IMyAddIn).FullName;
foreach (Type type in asm.GetExportedTypes()) {
    Type interfaceType = type.GetInterface(addInInterfaceName);
    if (interfaceType != null &&
        (type.Attributes & TypeAttributes.Abstract) != TypeAttributes.Abstract)
    {
        var addIn = (IMyAddIn)Activator.CreateInstance(type);
        // Let's assume that each add-in has only one class implementing the interface
        return addIn.GetUrl(input);
    }
}

如果您不想加载程序集,但确实执行文本给出的代码,请参见以下答案:https://stackoverflow.com/a/29417053/880990