我有这个字符串中的XML文件:执行字符串和检索结果
DateTime.ParseExact("21/06/1980", "dd/MM/yyyy",
System.Globalization.CultureInfo.GetCultureInfo("fr-fr"))
我想读取xml,执行这个字符串并检索结果。
你有什么想法来执行和检索结果吗?
我有这个字符串中的XML文件:执行字符串和检索结果
DateTime.ParseExact("21/06/1980", "dd/MM/yyyy",
System.Globalization.CultureInfo.GetCultureInfo("fr-fr"))
我想读取xml,执行这个字符串并检索结果。
你有什么想法来执行和检索结果吗?
C#和.NET框架都没有提供任何类型的字符串代码评估。如果你可以保证字符串的格式(换句话说,你可以保证字符串将用三个参数来描述一个静态方法调用),你可以解析出类型,方法和参数,并用反射来调用它们。
你能描述一个更普遍的问题吗?也许有更好的方法。
C#没有这样的功能。但是你可以尝试在运行时编译一个DLL,加载它并执行它。
This论坛有这样一个例子。基本思想是使用CodeDom
。
当你的应用程序被编译时,你的代码就变成了MSIL,这就是在.NET Framework上运行的东西。
你要求的是在运行时编译任意C#代码,然后执行它。
有几种可能的方法,但它们都不是特别容易。
最容易的是,如果您可以依赖于.NET SDK在您运行的环境中存在。如果是这样,那么你可以调用CSharp编译器(csc),生成一个DLL,然后加载它。
但是,要小心 - 这个生成的代码将拥有与您自己的代码相同的权利和能力。
此外,您可能会碰到在同一应用程序域中多次加载相同程序集名称的问题。