执行字符串并检索结果

时间:2010-11-20 18:32:50

标签: c#

我在XML文件中有这个字符串:

DateTime.ParseExact("21/06/1980", "dd/MM/yyyy", 
                     System.Globalization.CultureInfo.GetCultureInfo("fr-fr"))

我想读取xml,执行此字符串并检索结果。

您对执行和检索结果有什么想法吗?

3 个答案:

答案 0 :(得分:2)

C#和.NET框架都不提供任何类型的字符串来进行代码评估。如果你可以保证字符串的格式(换句话说,你可以保证字符串将描述带有三个参数的静态方法调用),你可以解析出类型,方法和参数,并用反射调用它们。

你能描述更普遍的问题吗?也许有更好的方法。

答案 1 :(得分:0)

C#没有这样的功能。但是,您可以尝试在运行时编译dll,加载并执行它。

This论坛有这样一个例子。基本想法是使用CodeDom

答案 2 :(得分:0)

编译应用程序时,您的代码将转换为MSIL,然后在.NET Framework上运行。

您要求的是在运行时编译任意C#代码,然后执行它。

有几种可能的方法,但没有一种方法特别容易。

最接近的是,如果您可以依赖于.NET SDK存在于您正在运行的环境中。如果是这样,那么你可以调用CSharp编译器(csc),生成一个DLL,然后加载它。

但是,请注意 - 此生成的代码将具有与您自己的代码相同的所有权限和能力。

此外,您可能会遇到在同一应用程序域中多次加载相同程序集名称的问题。