Je vais essayer d'être le plus clair possible mais le problème n'est pas
simple... :(
Je bloque sur le passage d'un paramètre à une fonction. La fonction en
question est décrite dans un assenbly n'étant pas à moi, il s'agit d'une
fonction de Rave Report (moteur d'impression).
le but de la fonction est de créer un objet dont le type sera passé en
paramètre, et c'est la que ca bloque. Comment lui passer ce paramètre ?
Si je passe un objet de type TRaveDataObject j'ai l'erreur :
Argument '1' : impossible de convertir de 'Nevrona.Rave.TRaveDataObject' en
'Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject'
Si j'essaye d'instancier un objet de type
TRaveDataObject.@MetaTRaveDataObject'
J'ai l'erreur suivante :
Le type ou le nom d'espace de noms 'MetaTRaveDataObject' n'existe pas dans
la classe ou l'espace de noms 'Nevrona.Rave.TRaveDataObject' (une référence
d'assembly est-elle manquante ?)
Alors que la classe en question m'est proposée par l'intelisense...
J'ai l'impression d'être dans un impasse, je ne comprends plus rien.
J'ai essayé de passer par System.Type ca ne marche pas non plus.
Si kkun à une idée je suis preneur.
Merci d'avance
Utilisez la méthode GetType de l'objet dont vous voulez passer le type. GetType retourne un objet de type Type. GetType est accessible sur tout objet puisque c'est une méthode de Object.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour,
Utilisez la méthode GetType de l'objet dont vous voulez passer le type.
GetType retourne un objet de type Type. GetType est accessible sur tout
objet puisque c'est une méthode de Object.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Utilisez la méthode GetType de l'objet dont vous voulez passer le type. GetType retourne un objet de type Type. GetType est accessible sur tout objet puisque c'est une méthode de Object.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
zobio
En fait j'avais oublié de dire que j'avais déja utilisez cette méthode. J'obtiens l'erreur suivante :
Argument '1' : impossible de convertir de 'System.Type' en '
"Patrick Philippot" a écrit dans le message de news: %
Bonjour,
Utilisez la méthode GetType de l'objet dont vous voulez passer le type. GetType retourne un objet de type Type. GetType est accessible sur tout objet puisque c'est une méthode de Object.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
En fait j'avais oublié de dire que j'avais déja utilisez cette méthode.
J'obtiens l'erreur suivante :
Argument '1' : impossible de convertir de 'System.Type' en
Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject'
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> a écrit dans le
message de news: %23gDf8kcmFHA.1372@TK2MSFTNGP10.phx.gbl...
Bonjour,
Utilisez la méthode GetType de l'objet dont vous voulez passer le type.
GetType retourne un objet de type Type. GetType est accessible sur tout
objet puisque c'est une méthode de Object.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
En fait j'avais oublié de dire que j'avais déja utilisez cette méthode. J'obtiens l'erreur suivante :
Argument '1' : impossible de convertir de 'System.Type' en '
"Patrick Philippot" a écrit dans le message de news: %
Bonjour,
Utilisez la méthode GetType de l'objet dont vous voulez passer le type. GetType retourne un objet de type Type. GetType est accessible sur tout objet puisque c'est une méthode de Object.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Merlin
zobio a écrit :
Voici le prototype de la fonction : NewDataObject( DataObjectClass) Si je passe un objet de type TRaveDataObject j'ai l'erreur : Argument '1' : impossible de convertir de 'Nevrona.Rave.TRaveDataObject' en ''
Cela signifie selon toute apparence que le fameux paramètre n'est pas une classe mais un type (les metadata, métadonnées).
il faut donc passer typeof(laclasse) comme paramètre à mon avis. Si ce type est dynamiquement attribué au runtime il est préférable d'utiliser GetType().
Voici le prototype de la fonction :
NewDataObject(TRaveDataObject.@MetaTRaveDataObject DataObjectClass)
Si je passe un objet de type TRaveDataObject j'ai l'erreur :
Argument '1' : impossible de convertir de 'Nevrona.Rave.TRaveDataObject' en
'Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject'
Cela signifie selon toute apparence que le fameux paramètre n'est pas
une classe mais un type (les metadata, métadonnées).
il faut donc passer typeof(laclasse) comme paramètre à mon avis.
Si ce type est dynamiquement attribué au runtime il est préférable
d'utiliser GetType().
Voici le prototype de la fonction : NewDataObject( DataObjectClass) Si je passe un objet de type TRaveDataObject j'ai l'erreur : Argument '1' : impossible de convertir de 'Nevrona.Rave.TRaveDataObject' en ''
Cela signifie selon toute apparence que le fameux paramètre n'est pas une classe mais un type (les metadata, métadonnées).
il faut donc passer typeof(laclasse) comme paramètre à mon avis. Si ce type est dynamiquement attribué au runtime il est préférable d'utiliser GetType().
Même erreur avec typeof, en fait typeof utilise aussi System.type
Pour tests, j'ai utiliser cette fonction dans un projet delphi 2005 (.net), en donnant la classe (pas un objet, directement la classe!) en paramètre ca marche Impec. Visiblement on peut passer une classe en paramètre a une fonction Delphi. Le tout est de trouver comment faire la même chose (sans le system.Type) en C#
Si quelqu'un ose me dire d'utiliser Delphi, je me fache ! lol
"Merlin" a écrit dans le message de news:
zobio a écrit :
Argument '1' : impossible de convertir de 'System.Type' en '
Même erreur avec typeof, en fait typeof utilise aussi System.type
Pour tests, j'ai utiliser cette fonction dans un projet delphi 2005 (.net),
en donnant la classe (pas un objet, directement la classe!) en paramètre ca
marche Impec.
Visiblement on peut passer une classe en paramètre a une fonction Delphi.
Le tout est de trouver comment faire la même chose (sans le system.Type) en
C#
Si quelqu'un ose me dire d'utiliser Delphi, je me fache ! lol
"Merlin" <Merlin@LesFees.Net> a écrit dans le message de news:
mn.2bec7d58e7050f02.18651@LesFees.Net...
zobio a écrit :
Argument '1' : impossible de convertir de 'System.Type' en
Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject'
Même erreur avec typeof, en fait typeof utilise aussi System.type
Pour tests, j'ai utiliser cette fonction dans un projet delphi 2005 (.net), en donnant la classe (pas un objet, directement la classe!) en paramètre ca marche Impec. Visiblement on peut passer une classe en paramètre a une fonction Delphi. Le tout est de trouver comment faire la même chose (sans le system.Type) en C#
Si quelqu'un ose me dire d'utiliser Delphi, je me fache ! lol
"Merlin" a écrit dans le message de news:
zobio a écrit :
Argument '1' : impossible de convertir de 'System.Type' en '
Argument '1' : impossible de convertir de 'System.Type' en ''
Le problème est toujours le même, a savoir que je lui donne un paramètre de type System.Type alors qu'il attend un type différent.
"Merlin" a écrit dans le message de news:
zobio a écrit :
Voici le prototype de la fonction : NewDataObject( DataObjectClass) Si je passe un objet de type TRaveDataObject j'ai l'erreur : Argument '1' : impossible de convertir de 'Nevrona.Rave.TRaveDataObject' en ''
Cela signifie selon toute apparence que le fameux paramètre n'est pas une classe mais un type (les metadata, métadonnées).
il faut donc passer typeof(laclasse) comme paramètre à mon avis. Si ce type est dynamiquement attribué au runtime il est préférable d'utiliser GetType().
Argument '1' : impossible de convertir de 'System.Type' en
'Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject'
Le problème est toujours le même, a savoir que je lui donne un paramètre de
type System.Type alors qu'il attend un type différent.
"Merlin" <Merlin@LesFees.Net> a écrit dans le message de news:
mn.2beb7d58e7e627ab.18651@LesFees.Net...
zobio a écrit :
Voici le prototype de la fonction :
NewDataObject(TRaveDataObject.@MetaTRaveDataObject DataObjectClass)
Si je passe un objet de type TRaveDataObject j'ai l'erreur :
Argument '1' : impossible de convertir de 'Nevrona.Rave.TRaveDataObject'
en 'Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject'
Cela signifie selon toute apparence que le fameux paramètre n'est pas une
classe mais un type (les metadata, métadonnées).
il faut donc passer typeof(laclasse) comme paramètre à mon avis.
Si ce type est dynamiquement attribué au runtime il est préférable
d'utiliser GetType().
Argument '1' : impossible de convertir de 'System.Type' en ''
Le problème est toujours le même, a savoir que je lui donne un paramètre de type System.Type alors qu'il attend un type différent.
"Merlin" a écrit dans le message de news:
zobio a écrit :
Voici le prototype de la fonction : NewDataObject( DataObjectClass) Si je passe un objet de type TRaveDataObject j'ai l'erreur : Argument '1' : impossible de convertir de 'Nevrona.Rave.TRaveDataObject' en ''
Cela signifie selon toute apparence que le fameux paramètre n'est pas une classe mais un type (les metadata, métadonnées).
il faut donc passer typeof(laclasse) comme paramètre à mon avis. Si ce type est dynamiquement attribué au runtime il est préférable d'utiliser GetType().
Si ça ne fonctionne pas et que la conversion est toujours impossible, il faut peut-être se demander si l'objet en question est du bon type.
D'après ce que je lis '' n'est certainement pas la même chose que 'Nevrona.Rave.TRaveDataObject'
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
zob
J'ai aussi essayé le as
Le probleme est que la classe @MetaTRaveObject est innacessible, je ne peux pas l'utiliser, j'ai une erreur me disant que TRaveDataObject n'a pas de définition pour @MetaTRaveObject alors que cette classe est donnée par l'intellisense. En fait c'est le meme problème que quand je veux déclarer une instance de ce type, c'est impossible... Et c'est la tout le problème. C'est ce qu'attend la fonction en paramètre, et je ne peux acceder à ce type, j'ai systématiquement une erreur de compilation.
J'ai essayé dans d'autres projets, je retrouve ces classes "@MetaMaClasse" dans des classes MaClasse par exemple, mais toujours innutilisable. Je ne comprends pas d'ou sortent ces @Meta... et surtout comment les utiliser.
D'autre part pour information, dans le projet delphi.net qui utilise la meme fonction l'infobulle sur la fonction indique que le paramètre a fournir et du type Nevrona.Rave.TRaveDataObject Alors qu'en C# l'infobulle me dit qu'il faut fournir un
Je ne comprends pas...
Merci beaucoup pour votre aide, je comprendrais que vous jetiez l'éponge etant donné la galère que c'est. Je continue a chercher...
"Patrick Philippot" a écrit dans le message de news: %
Et GetType(votre_objet) as
Si ça ne fonctionne pas et que la conversion est toujours impossible, il faut peut-être se demander si l'objet en question est du bon type.
D'après ce que je lis '' n'est certainement pas la même chose que 'Nevrona.Rave.TRaveDataObject'
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
J'ai aussi essayé le as Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject
Le probleme est que la classe @MetaTRaveObject est innacessible, je ne peux
pas l'utiliser, j'ai une erreur me disant que TRaveDataObject n'a pas de
définition pour @MetaTRaveObject
alors que cette classe est donnée par l'intellisense. En fait c'est le meme
problème que quand je veux déclarer une instance de ce type, c'est
impossible...
Et c'est la tout le problème.
C'est ce qu'attend la fonction en paramètre, et je ne peux acceder à ce
type, j'ai systématiquement une erreur de compilation.
J'ai essayé dans d'autres projets, je retrouve ces classes "@MetaMaClasse"
dans des classes MaClasse par exemple, mais toujours innutilisable.
Je ne comprends pas d'ou sortent ces @Meta... et surtout comment les
utiliser.
D'autre part pour information, dans le projet delphi.net qui utilise la meme
fonction l'infobulle sur la fonction indique que le paramètre a fournir et
du type
Nevrona.Rave.TRaveDataObject
Alors qu'en C# l'infobulle me dit qu'il faut fournir un
Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject
Je ne comprends pas...
Merci beaucoup pour votre aide, je comprendrais que vous jetiez l'éponge
etant donné la galère que c'est.
Je continue a chercher...
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> a écrit dans le
message de news: %23dmkHldmFHA.320@TK2MSFTNGP09.phx.gbl...
Et GetType(votre_objet) as
Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject
Si ça ne fonctionne pas et que la conversion est toujours impossible, il
faut peut-être se demander si l'objet en question est du bon type.
D'après ce que je lis 'Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject'
n'est certainement pas la même chose que 'Nevrona.Rave.TRaveDataObject'
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Le probleme est que la classe @MetaTRaveObject est innacessible, je ne peux pas l'utiliser, j'ai une erreur me disant que TRaveDataObject n'a pas de définition pour @MetaTRaveObject alors que cette classe est donnée par l'intellisense. En fait c'est le meme problème que quand je veux déclarer une instance de ce type, c'est impossible... Et c'est la tout le problème. C'est ce qu'attend la fonction en paramètre, et je ne peux acceder à ce type, j'ai systématiquement une erreur de compilation.
J'ai essayé dans d'autres projets, je retrouve ces classes "@MetaMaClasse" dans des classes MaClasse par exemple, mais toujours innutilisable. Je ne comprends pas d'ou sortent ces @Meta... et surtout comment les utiliser.
D'autre part pour information, dans le projet delphi.net qui utilise la meme fonction l'infobulle sur la fonction indique que le paramètre a fournir et du type Nevrona.Rave.TRaveDataObject Alors qu'en C# l'infobulle me dit qu'il faut fournir un
Je ne comprends pas...
Merci beaucoup pour votre aide, je comprendrais que vous jetiez l'éponge etant donné la galère que c'est. Je continue a chercher...
"Patrick Philippot" a écrit dans le message de news: %
Et GetType(votre_objet) as
Si ça ne fonctionne pas et que la conversion est toujours impossible, il faut peut-être se demander si l'objet en question est du bon type.
D'après ce que je lis '' n'est certainement pas la même chose que 'Nevrona.Rave.TRaveDataObject'
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Patrick Philippot
zob wrote:
J'ai aussi essayé le as
Le probleme est que la classe @MetaTRaveObject est innacessible, je ne peux pas l'utiliser, j'ai une erreur me disant que TRaveDataObject n'a pas de définition pour @MetaTRaveObject alors que cette classe est donnée par l'intellisense. En fait c'est le meme problème que quand je veux déclarer une instance de ce type, c'est impossible... Et c'est la tout le problème.
Il ne vous manque pas une référence par hasard? Ne pas confondre Import et référence. L'import suffit à Intellisense mais pas au compilateur.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
zob wrote:
J'ai aussi essayé le as
Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject
Le probleme est que la classe @MetaTRaveObject est innacessible, je
ne peux pas l'utiliser, j'ai une erreur me disant que TRaveDataObject
n'a pas de définition pour @MetaTRaveObject
alors que cette classe est donnée par l'intellisense. En fait c'est
le meme problème que quand je veux déclarer une instance de ce type,
c'est impossible...
Et c'est la tout le problème.
Il ne vous manque pas une référence par hasard? Ne pas confondre Import
et référence. L'import suffit à Intellisense mais pas au compilateur.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Le probleme est que la classe @MetaTRaveObject est innacessible, je ne peux pas l'utiliser, j'ai une erreur me disant que TRaveDataObject n'a pas de définition pour @MetaTRaveObject alors que cette classe est donnée par l'intellisense. En fait c'est le meme problème que quand je veux déclarer une instance de ce type, c'est impossible... Et c'est la tout le problème.
Il ne vous manque pas une référence par hasard? Ne pas confondre Import et référence. L'import suffit à Intellisense mais pas au compilateur.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
zob
C'est ce que je me suis dis, mais ce n'est pas le cas... (dommage) J'ai référencer les deux Dll utiles, et en plus de ca il n'y en a pas d'autres dans le Package Rave Report
"Patrick Philippot" a écrit dans le message de news: %
zob wrote:
J'ai aussi essayé le as Le probleme est que la classe @MetaTRaveObject est innacessible, je ne peux pas l'utiliser, j'ai une erreur me disant que TRaveDataObject n'a pas de définition pour @MetaTRaveObject alors que cette classe est donnée par l'intellisense. En fait c'est le meme problème que quand je veux déclarer une instance de ce type, c'est impossible... Et c'est la tout le problème.
Il ne vous manque pas une référence par hasard? Ne pas confondre Import et référence. L'import suffit à Intellisense mais pas au compilateur.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
C'est ce que je me suis dis, mais ce n'est pas le cas... (dommage)
J'ai référencer les deux Dll utiles, et en plus de ca il n'y en a pas
d'autres dans le Package Rave Report
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> a écrit dans le
message de news: %23RFopHemFHA.3256@TK2MSFTNGP12.phx.gbl...
zob wrote:
J'ai aussi essayé le as Nevrona.Rave.TRaveDataObject.@MetaTRaveDataObject
Le probleme est que la classe @MetaTRaveObject est innacessible, je
ne peux pas l'utiliser, j'ai une erreur me disant que TRaveDataObject
n'a pas de définition pour @MetaTRaveObject
alors que cette classe est donnée par l'intellisense. En fait c'est
le meme problème que quand je veux déclarer une instance de ce type,
c'est impossible...
Et c'est la tout le problème.
Il ne vous manque pas une référence par hasard? Ne pas confondre Import et
référence. L'import suffit à Intellisense mais pas au compilateur.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
C'est ce que je me suis dis, mais ce n'est pas le cas... (dommage) J'ai référencer les deux Dll utiles, et en plus de ca il n'y en a pas d'autres dans le Package Rave Report
"Patrick Philippot" a écrit dans le message de news: %
zob wrote:
J'ai aussi essayé le as Le probleme est que la classe @MetaTRaveObject est innacessible, je ne peux pas l'utiliser, j'ai une erreur me disant que TRaveDataObject n'a pas de définition pour @MetaTRaveObject alors que cette classe est donnée par l'intellisense. En fait c'est le meme problème que quand je veux déclarer une instance de ce type, c'est impossible... Et c'est la tout le problème.
Il ne vous manque pas une référence par hasard? Ne pas confondre Import et référence. L'import suffit à Intellisense mais pas au compilateur.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr