我有一个 .cs 文件,例如
namespace SomeNamepace
{
public struct SomeStruct
{
....
}
public static class SomeClass
{
....
}
到目前为止,我将它与 PythonNET 一起使用,例如
import clr
clr.AddReference('c:\\Test\Module.dll')
from SomeNamepace import SomeClass, SomeStruct
SomeClass.SomeMethod(...)
我现在的问题是我需要使用具有相同名称且未设置版本号的 dll,因此 PythonNET 不会将它们视为两个不同的 dll,而是将它们视为相同的。即使我使用带有 AddReference 的完整路径导入它们。
现在我想明确地使用它们,如此处所述:
Python for .NET:在多个版本中使用相同的 .NET 程序集
喜欢
lib = clr.AddReference('c:\\Test\Module.dll')
我尝试了很多方法来创建SomeClass
类似的实例
lib.SomeNamespace.SomeClass()
或者
import System
System.Activator.CreateInstance(lib.GetType('SomeNamespace.SomeClass'))
或使用方法Initialize
或CreateInstance
或如以下链接中所述
from System import Type
type1 = lib.GetType('SomeNamespace.SomeClass')
constructor1 = type1.GetConstructor(Type.EmptyTypes)
最后一切都失败了,找不到东西,没有方法等等。
这样做的正确语法是什么?