ASP dictionary faisabilité d'un dictionaire de dictionnaire [Résolu]

Signaler
Messages postés
3
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
17 juillet 2004
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
est-il possible de réaliser en asp un dictionnaire de dictionnaire si oui comment

j'entends par dictionnaire de dictionnaire le fait qu'en item on integre un objet du type dictionnaire
(mais toutes vos experience sont les bienvenue)
par avance merci!!!!!

iexid

6 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
J'ai dit une connerie au dessus : CollectionBase et DictionnaryBase, ne derive pas d'un meme objet, mais par contre, ils ont tout les deux, Ienumerable et Icollection en commun, l'un a en plus Ilist et l'autre IDictionnary

mais bon, il n'y a qd meme pas bcp de difference entre les deux
Cyril
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Je pense que tu travailles en asp.net - vb.net

tu aurais surement eu plus de reponse, si tu aurais posé ta question sur vbfrance.com, car ici, c'est plus centré sur le coté asp.net que sur vb.net

mais pour repondre à ta question, oui il est tout à fait possible de faire ce que tu demandes, voici ce que j'ai fait :

Imports System.Collections

Public Class GrandDico
    Inherits DictionaryBase

    Public Sub Add(ByVal key As String, ByVal dico As IDictionary)
        Dictionary.Add(key, dico)
    End Sub

End Class

Public Class PetitDico
    Inherits DictionaryBase

    Public Sub Add(ByVal key As [String], ByVal value As String)
        Dictionary.Add(key, value)
    End Sub

End Class

Public Class class1

    Public Sub New()
        Dim PD As PetitDico
        Dim GD As GrandDico

        GD = New GrandDico
        For i As Integer = 1 To 10
            PD = New PetitDico
            For count As Integer = 1 To 10
                PD.Add("Key N°" & count, "Value N°" & count)
            Next
            GD.Add("PetitDico N° " & i, PD)
        Next
    End Sub

End Class


j'ai donc bien un dictionnaire qui contient des dictionnaires, mon exemple sert pas à grand chose, car il aurait été plus simple de faire ca avec des list, mais la seule diference entre une list et un dico, c'est la clé, sinon, il ont la meme base

j'espere que ce petit bout de code aura repondu à ta question

@+

Cyril
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016

Hey Jesus j'te vois partout ;)



Une petite colle...

Comment on utilise (en C#) un dictionnaire ? J'essaie de créer une
fonction qui en renvoie un mais dès que je met MAFONTION() as
IDictionary ou encore MAFONCTION() as DictionaryBase bah il me
met une chouette erreur à l'execution :



Le type System.Collections.IDictionary n'est pas pris en charge, car il
implémente IDictionary.



Sympa comme message mais j'en ai d'jà vu de plus parlant...





Bon ormi c'te prob le dico c'est du news pour moi donc faire un dico de
dico moi yé veut bien mais personne ne montre comment utiliser un seul
dico (sont zentil )



Pour l'instant j'en suis à :



<WebMethod()> Public Function PersConver(ByVal PseudoPersonne As String) As IDictionary

Dim MonDico As IDictionary

Dim cmdset As New SqlClient.SqlCommand

Dim compteur As Integer



cmdset.Connection = cnn

cmdset.CommandType = CommandType.StoredProcedure

cmdset.CommandText = "PersonneConvers"

cmdset.Parameters.Add("@Personne", PseudoPersonne)

cnn.Open()



Dim Reader As SqlClient.SqlDataReader

Reader = cmdset.ExecuteReader



Reader.Read()



compteur = 0

While Reader.Read()

MonDico.Add(compteur, Reader.GetString(2))

Reader.Read()

compteur += 1

End While



Return MonDico







Si quelqu'un connaitrai aussi la syntaxe pour le lire ensuite j'suis preneur (mais bon jdevrais trouvé...)



Th'x


Cyberice
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
y'a pire comme message d'erreur ;)

donc, le problème vient des services web je pense, ca doit pas etre faisable de mettre un dico à cause de SOAP, il y a plein de petites limitation malgré ce qu'on dit.

pour utiliser un dico, on fait comme ca



Dim dico
As
New System.Collections.Specialized.StringDictionary()


dico.Add(
"key as string",
"value as string")



Return dico(
"key as string")

j'ai testé le code sous VS2005 (de toute facon j'ai plus VS2003:D) mais je suis pas sur que ces classes existe en .net 1.1

c'est pas impossible qu'il faille les créer en dérivant de dictionnarybase ... je sais plus, fais une recherche au pire ;)


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016

Effectivement ca ne marche pas avec les webmethodes, t'as bien raison.
Il dit qu'c'est impossible de convertir un dico en tableau 1
dimension... SOAP => vive les mises a jour ;)

Sinon le code en lui même semble fonctionner tel que tu l'as écris.



Bon bah maintenant qu'j'ai mes ArrayList, j'vais remplacer un dico par
un banal tableau de valeur puis j'v voir si on peut transmettre une
classe, mais là dur dur :)

Hop on s'motive ^^

Cyberice
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
une classe ca passe aussi, mais faut que ca soit serializable

<serializable>public class maclass
public mavar as string
end class

mais niveau ressource c'est gourmand, mais c'est ultra clair. Ce qui est sympa c'est aussi de renvoyer un fichier xml avec un schéma, c'est presque renvoyer un dataset mais en plus simple :p mais autre renvoyer une classe et un xml, niveau données transmise doit pas y avoir beaucoup de difference si ce n'est la verbosité du truc :p


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr