2009-10-16 6 views
3

Si j'ai une classe .Net qui ne fait partie d'aucun espace de noms, je ne peux pas l'utiliser dans ironpython.Problème lié à l'utilisation d'une classe .net dans ironpython

Voici un exemple

Supposons que j'ai un FooLib.dll d'assemblage avec la définition de classe suivante

// Notez la classe suivante ne fait pas partie de l'espace de noms global

public class Foo { }

Maintenant, je essayez de l'utiliser dans IronPython

clr.AddReference("FooLib") # This call succeeds.

f = Foo()

La ligne f = Foo() renvoie l'erreur

Traceback (most recent call last):

File "", line 1, in

NameError: name 'Foo' is not defined

J'ai essayé le suivant

from FooLib import *

f = Foo()

La ligne d'importation FooLib * signale une erreur qui est logique que la clause FROM doit être utilisé sur les espaces de noms et non sur les assemblages

Cependant, si la classe Foo appartient à un espace de nom, alors je n'ai pas de problème à importer dans ironpython

Alors, ma question est comment puis-je utiliser une classe .net appartenance à un espace de noms global de IronPython

concernant Ganesh

Répondre

3

Vous devez utiliser une import nue comme ceci:

import clr 
clr.AddReference("FooLib") # This call succeeds. 
import Foo 
f = Foo() 
+0

Ça marche ... merci beaucoup Ganesh – Ganesh