正在搞一个动态执行C#代码的功能
需要在程序中动态编译代码,而编译代码,需要加入类似于如下的代码
objCompilerParameters.ReferencedAssemblies.Add("System.dll");其中红色的System.dll我希望能够动态获得,就是调用程序项目的引用,比如如下公共引用
System
System.Core
System.Data
System.Data.DataSetExtensions
System.Xml
System.Xml.Linq
或者用户自己加的其他引用有办法得到吗?

解决方案 »

  1.   

    没有办法。道理很简单:比如说我写一个dll:namespace System.Data
    {
        class MyClass { ... }
    }我现在需要动态编译代码:using System.Data;...MyClass mc = new MyClass();
    ...你现在告诉我,光从我的代码看,引用什么dll?甚至,我c盘和d盘各有一个myclass.dll,你告诉我引用哪个?因为namespace 和 dll 不是一一对应的,.NET 也不强制要求 dll 被注册到 gac,所以没有办法。