【问题标题】: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() 可能会起作用。

    【讨论】:

      猜你喜欢
      • 2017-12-31
      • 2019-01-31
      • 2016-08-11
      • 2021-08-10
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多