【问题标题】:Can I use pythonnet without .AddReference?我可以在没有 .AddReference 的情况下使用 pythonnet 吗?
【发布时间】:2022-08-03 04:02:19
【问题描述】:
在项目中集成 pythonnet 的常用方法如下:
import clr
clr.AddReference(\'My.Assembly\')
import My.Assembly
My.Assembly.DoSomething()
如果我不希望程序集命名空间被导入并在全球范围内可用怎么办。
有没有办法实现这样的事情:
my_assembly = magic_loader(\'My.Assembly.dll\')
my_assembly.DoSomething()
标签:
python
clr
python.net
【解决方案1】:
看来这可能与您的情况有关:How are DLLs loaded by the CLR?
所以你可以这样做:
using System;
using System.Reflection;
public class Utilities {
public static Object LoadCustomCls(string file) {
Assembly a = Assembly.LoadFrom(file) ;
return a.CreateInstance("namespace.someclass") ;
}
}
并且调用LoadCustomCls(file).DoSomething() 可能会起作用。