0

我一直在为运行时进程使用 C# 动态代码。我的问题是我似乎无法将数据集对象传递给动态代码而没有得到:

“无法加载文件或程序集 'file:///C:\Users\mgallanx\AppData\Local\Temp\npbylo5z.dll' 或其依赖项之一。系统找不到指定的文件。”

这是我正在使用的最简单的数据集处理字符串:

mycodestring = "using System; 
    using System.Data; 
    namespace DaCodeNS 
     { 
       public static class DaCode 
        { 
          public static DataSet DaMethod( Dataset dsIn) 
          { 
            return dsIn; 
          }
        }
      }"

调用方法设置参数以添加System.dllSystem.Data.dll,创建一个Object[] mp到一个元素sIn

然后调用是:

CompilerResults results = provider.CompileAssemblyFromSource (parameters, mycodestring);
var cls = results.CompiledAssembly.GetType ("DaCodeNS.DaCode");
var method = cls.GetMethod ("DaMethod", BindingFlags.Static | BindingFlags.Public);
return (DataSet)  method.Invoke (null, mp);

它断线GetMethod。我可以得到类似的代码传递整数来播放,但是改变返回并传递给DataSet爆炸。任何帮助表示赞赏。

4

1 回答 1

0

您很可能没有包含编译/运行动态代码所需的所有引用。找到所有需要的引用的一种简单方法是创建一个独立项目,其中仅包含您要编译的代码。然后查看您需要添加到项目中以使其编译/运行的引用。

于 2015-08-25T23:58:36.743 回答