我一直在为运行时进程使用 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.dll
和System.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
爆炸。任何帮助表示赞赏。