首页 新闻 会员 周边

asp.net 动态编译程序时添加 System.Data.SqlClient.dll 引用 报找不到文件错误 希望各位大侠指点一下

0
[已解决问题] 解决于 2013-06-24 23:26

  private string say()
    {
        string method = @"namespace Yb
{
    public class helloworld
    {
        public helloworld()
        {
          
        }
        public string sayHello1(string str)
        {
            return str;
        }
        public string sayHello(string str,string str1)
        {
            return str+str1;
        }
    }
}";
        CodeSnippetCompileUnit unit = new CodeSnippetCompileUnit(method);
        CSharpCodeProvider provider = new CSharpCodeProvider();
        CompilerParameters paras = new CompilerParameters();

        paras.ReferencedAssemblies.Add(" System.dll");
        paras.ReferencedAssemblies.Add(" System.Data.dll");
        paras.ReferencedAssemblies.Add(" System.Data.SqlClient.dll");
        paras.GenerateInMemory = true;
        paras.GenerateExecutable = false;
        Assembly asm = provider.CompileAssemblyFromDom(paras, unit).CompiledAssembly;
        Type type = asm.GetType("Yb.helloworld");
        MethodInfo mi = type.GetMethod( "sayHello1" , BindingFlags.Public | BindingFlags.Instance);
        object obj = asm.CreateInstance("Yb.helloworld");
        string returnstr = mi.Invoke(obj, new object[] { "helloworld" }).ToString();

        return returnstr;

    }

饮冰18的主页 饮冰18 | 菜鸟二级 | 园豆:202
提问于:2012-07-25 13:40
< >
分享
最佳答案
0

System.Data.SqlClient就在System.Data.dll中,没有所谓的System.Data.SqlClient.dll的。

奖励园豆:5
dudu | 高人七级 |园豆:30994 | 2012-07-26 11:23

那我要动态编译程序怎么添加对它的应用啊?用这样的方式: paras.ReferencedAssemblies.Add("");  谢了

饮冰18 | 园豆:202 (菜鸟二级) | 2012-07-26 11:28

@饮冰18: 删除掉paras.ReferencedAssemblies.Add("System.Data.SqlClient.dll");

dudu | 园豆:30994 (高人七级) | 2012-07-26 11:30
其他回答(1)
0

1、(" System.Data.dll");多了空格

2、System.Data.SqlClient.dll是否物理存在于你的机器上,现在.net4已经没有这个库了

 

可参考类似的:http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/1e4ac2db-3785-4133-8e67-105aacbcdffc/

2012 | 园豆:21230 (高人七级) | 2012-07-25 15:55

是的对字符串动态编译是正确的 System.Data.SqlClient.dll 好像 2、3、4下面都没有  它是System.Data命名空间下的  我查了半天有人说制定编译器的版本就好了  我试了还是不行

支持(0) 反对(0) 饮冰18 | 园豆:202 (菜鸟二级) | 2012-07-25 16:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册