IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

IDL et generics


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Par défaut IDL et generics
    Bonjour à tous,

    j'aimerai savoir s'il y a un moyen de générer un idl à partir d'une classe (pour mon cas en c#) contenant des générics.

    Par exemple, voici l'interface d'une telle classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    namespace MesTests
    {
        public interface ITestIdl
        {
     
            List<string> GetStringList();
     
            List<AutreClass> GetMesObjets();
        }
    Pour l'instant, l'utilisation de CLSIDLGenerator.exe pour générer l'idl d'une telle classe me donne les erreurs suivantes:
    error while running generator: System.ArgumentNullException: La référence de chaîne n'est pas définie à une instance d'une chaîne.
    à System.Reflection.Module.InternalGetStringConstant(String str)
    à System.Reflection.Emit.ModuleBuilder.GetStringConstant(String str)
    à System.Reflection.Emit.ILGenerator.Emit(OpCode opcode, String str)
    à Ch.Elca.Iiop.Idl.BoxedValueTypeGenerator.DefineGetFirstNonBoxedTypeName(TypeBuilder boxBuilder, Type fullUnboxed)
    à Ch.Elca.Iiop.Idl.BoxedValueTypeGenerator.DefineBoxedTypeForCLSArray(TypeBuilder boxBuilder, Type arrayType, BoxedValueRuntimeTypeGenerator gen)
    à Ch.Elca.Iiop.Idl.BoxedValueRuntimeTypeGenerator.GetOrCreateBoxedTypeForArray(Type arrayType)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.GetBoxedArrayType(Type clsArrayType)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.CallActionForDNArray(Type& clsType, AttributeExtCollection& modifiedAttributes, AttributeExtCollection allAttribu
    tes, MappingAction action)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsTypeWithTransform(Type& clsType, AttributeExtCollection& attributes, MappingAction action, CustomMappingDes
    c& usedCustomMapping)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsType(Type clsType, AttributeExtCollection attributes, MappingAction action)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.IsMappedToConcreteValueType(Type clsType, AttributeExtCollection attributes)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.IsMappedToConcreteValueType(Type clsType)
    à Ch.Elca.Iiop.Idl.DependencyManager.IsForwardDeclPossible(Type forType, AttributeExtCollection attributes)
    à Ch.Elca.Iiop.Idl.DependencyInformation.DetermineContentDependenciesFromMethods()
    à Ch.Elca.Iiop.Idl.DependencyInformation.DetermineContentDependencies(AttributeExtCollection attributesAfterMap)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.BeginTypeWithName(Type dotNetType, AttributeExtCollection attributes, AttributeExtCollection attribu
    tesAfterMap, String[] modules, String unqualName)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.MapToIdlConcreateValueType(Type clsType)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsTypeWithTransform(Type& clsType, AttributeExtCollection& attributes, MappingAction action, CustomMappingDes
    c& usedCustomMapping)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsType(Type clsType, AttributeExtCollection attributes, MappingAction action)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.MapTypes(IList typesToMap)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.EndType()
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.MapToIdlConcreateValueType(Type clsType)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsTypeWithTransform(Type& clsType, AttributeExtCollection& attributes, MappingAction action, CustomMappingDes
    c& usedCustomMapping)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsType(Type clsType, AttributeExtCollection attributes, MappingAction action)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.MapTypes(IList typesToMap)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.EndType()
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.MapToIdlAbstractInterface(Type clsType)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.CallActionForDNInterface(Type& clsType, MappingAction action)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsTypeWithTransform(Type& clsType, AttributeExtCollection& attributes, MappingAction action, CustomMappingDes
    c& usedCustomMapping)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsType(Type clsType, AttributeExtCollection attributes, MappingAction action)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.MapTypes(IList typesToMap)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.BeforeTypeDefinition()
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.BeginTypeWithName(Type dotNetType, AttributeExtCollection attributes, AttributeExtCollection attribu
    tesAfterMap, String[] modules, String unqualName)
    à Ch.Elca.Iiop.Idl.GenerationActionDefineTypes.MapToIdlConcreteInterface(Type clsType)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsTypeWithTransform(Type& clsType, AttributeExtCollection& attributes, MappingAction action, CustomMappingDes
    c& usedCustomMapping)
    à Ch.Elca.Iiop.Idl.ClsToIdlMapper.MapClsType(Type clsType, AttributeExtCollection attributes, MappingAction action)
    à Ch.Elca.Iiop.Idl.IdlGenerator.Main(String[] args)
    Cela m'ennuit de virer tous mes generics.

    Merci de m'aider.

  2. #2
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Déclares-tu une référence vers le namespace qui connait "AutreClass"?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Par défaut
    En fait, dans mon projet de base j ai en effet des références à "AutreClass". Cependant meme si je ne mets que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    namespace MesTests
    {
        public interface ITestIdl
        {
     
            List<string> GetStringList();
        }
    le probleme reste entier.

  4. #4
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Par défaut Impossible de lancer CLSIDLGenerator de IIOP.NET
    Bonjour,

    Je rebondis sur ce post qui me semble approprié.

    Tout d'abord pour répondre à ce problème afin d'aider mon prochain, je crois qu'il faut réaliser un mapping des types, notamment lorsque on souhaite faire du CLS to Java (cf. repository du bundle IIOP.NET -> IntegrationTests -> MappingPlugin).

    Moi mon problème est tout autre, je ne peux lancer la génération automatique à l'aide de l'executable CLSIDLGenerator proposé par IIOOP.NET. Lors de l'execution, j'ai un message de retour qui est le suivant :
    CLSIDLGenerator.exe Ch.Elca.Iiop.IntegrationTests.TestService TestServer.exe
    Error while loading assembly: The format of the file 'TestServer.exe' is invalid.
    Je suis donc un peu perplexe, j'ai également essayé de créer une dll, rien ne change... Je possède Visual Studio Express 2008 C# Edition.

    Donc pour le moment je me retrouve à coder mes IDL à la mano, parfois avec de large prise de tête, notamment en ce qui concerne les tableaux. Je n'arrive d'ailleurs toujours pas à faire ce mapping entre CLS et Java.

    Merci d'avance des courageux... il n'y a vraiment que peu de ressource sur le net à ce sujet !

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  2. Inclusion de fichiers en IDL
    Par babou dans le forum CORBA
    Réponses: 10
    Dernier message: 30/07/2002, 16h47
  3. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  4. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  5. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo