Python para .NET: ¿Cómo crear explícitamente instancias de clases de C # usando diferentes versiones de la misma DLL?
Tengo un archivo .cs como
namespace SomeNamepace
{
public struct SomeStruct
{
....
}
public static class SomeClass
{
....
}
Hasta ahora lo uso con PythonNET como
import clr
clr.AddReference('c:\\Test\Module.dll')
from SomeNamepace import SomeClass, SomeStruct
SomeClass.SomeMethod(...)
Mi problema ahora es que necesito trabajar con dlls con nombres idénticos y sin número de versión establecido, por lo que PythonNET no los verá como dos dlls diferentes, sino como el mismo. Incluso si los importo usando la ruta completa con AddReference.
Ahora me gustaría usarlos explícitamente como se indica aquí:
Python para .NET: uso del mismo ensamblado .NET en varias versiones
me gusta
lib = clr.AddReference('c:\\Test\Module.dll')
Intenté muchas cosas para crear una instancia deSomeClass
me gusta
lib.SomeNamespace.SomeClass()
o
import System
System.Activator.CreateInstance(lib.GetType('SomeNamespace.SomeClass'))
o usando los métodosInitialize
oCreateInstance
o como se menciona en el siguiente enlace
from System import Type
type1 = lib.GetType('SomeNamespace.SomeClass')
constructor1 = type1.GetConstructor(Type.EmptyTypes)
Al final todo falló, algo no encontrado, no tiene método, etc. etc.
¿Cuál sería la sintaxis correcta para hacer esto?