我需要在运行时编译C#代码.我正在使用这样的代码:CSharpCodeProvider provider = new CSharpCodeProvider();CompilerParameters parameters = new CompilerParameters();parameters.ReferencedAssemblies.Add(My...

我需要在运行时编译C#代码.我正在使用这样的代码:
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.ReferencedAssemblies.Add("MyLibrary.dll"); // File Path on Hard Drive
...
但是我想使用加载到内存中的库而不是它们的文件地址.可能吗?
解决方法:
如果它不是仅在内存中生成的程序集,则可以使用:
parameters.ReferencedAssemblies.Add
( typeof(ClassInAssemblyYouWantToAdd).Assembly.Location
);
要么:
parameters.ReferencedAssemblies.Add
( Assembly.Load("Full.Qualified.Assembly.Name").Location
);
Location属性具有加载的程序集的路径.
它必须具有程序集的硬拷贝,而不仅仅是内存中的内容,因此您不能仅为此而使用生成的程序集.如果需要使用内存生成的程序集,可以先将其保存到磁盘.
织梦狗教程
本文标题为:C#-在运行时编译代码并使用加载到内存中的程序集


基础教程推荐
猜你喜欢
- C#中的应用程序接口介绍及实现,密封类与密封方法 2023-01-06
- windows 下部署 .netcore 到 docker 2023-09-27
- C#实体对象序列化成Json并让字段的首字母小写的两种解决方法 2022-12-26
- 浅谈C#中的string驻留池 2023-03-03
- unity scrollRect实现按页码翻页效果 2023-02-16
- SqlServer数据类型、C#SqlDbType对应关系及转换 2023-11-09
- C# SQLiteDataReader读取结果集中字段的内容 2023-11-11
- C#使用HttpWebRequest重定向方法详解 2023-01-22
- C#排序算法之快速排序解析 2023-02-06
- WPF在VisualTree上增加Visual 2023-06-21