Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Αποθήκευση ενος structure σε resource file.

Îåêßíçóå áðü ôï ìÝëïò gtsoulou. Τελευταία δημοσίευση από το μέλος gtsoulou στις 05-04-2006, 12:46. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-04-2006, 04:39 11570

    Αποθήκευση ενος structure σε resource file.

    Γειά σας.
    Έχω ένα πρόγραμμα που αποθηκεύει σε ένα resource αρχείο ένα δικό μου structure. Για να καταλάβετε τι εννοώ, ο κώδικας είναι κάπως έτσι:

    Public Class write_resource_class
        Private Sub write_res()
            Dim mystruc As New my_struct
            mystruc.key = "ena"
            mystruc.value = "dyo"

            Dim rw As System.Resources.ResourceWriter = New System.Resources.ResourceWriter("dokimi.resources")
            rw.AddResource("kleidi", mystruc)
            rw.Generate()
            rw.Close()
        End Sub
    End Class

    <Serializable()> Public Class my_struct
        Public key As String
        Public value As String
    End Class

    Όλα καλά μέχρι εδώ. Όταν όμως πάω να φορτώσω από ένα άλλο πρόγραμμα το dokimi.resource τότε μου βγάζει το σφάλμα:

    "An unhandled exception of type 'System.TypeLoadException' occurred in mscorlib.dll
    Additional information: Could not load a type.  Failed to partial bind to "write_resource.my_struct, write_resource, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null"."

    , όπου write_resource είναι το όνομα του project που φτιάχνει το resource. Προφανώς το πρόβλημα είναι ότι στο καινούριο project δεν υπάρχει το structure "my_struct" κι έτσι δεν μπορεί να αναγνωρίσει το data type που υπάρχει μέσα στο resource αρχείο. 

    Ξέρει κανείς πως μπορώ να αντιμετωπίσω αυτό το πρόβλημα?



  •  05-04-2006, 09:57 11575 σε απάντηση της 11570

    Απ: Αποθήκευση ενος structure σε resource file.

    Εφόσον θέλεις σε ένα διαφορετικό project να φορτώσεις το resource, πρέπει το project να γνωρίζει τι τύπο αντικειμένου πάει να φορτώσει. Το λιγότερο που θα μπορούσες να κάνεις θα ήταν στο project να κάνεις reference το project που περιέχει τον ορισμό του struct.

    Η καλύτερη λύση βέβαια θα ήταν να είχες ένα ξεχωριστό project, όπου να ορίζεις όλα τα struct - classes που θέλεις να γίνονται embed, και το dll που σου παράγει αυτό το project να το κάνεις reference στα υπόλοιπα project. Αυτό βέβαια είναι απλά μια συμβουλή και δεν είναι σίγουρο ότι ταιριάζει σε αυτό που θες να κάνεις.
    Στερνή μου γνώση να σε είχα πρώτα...
  •  05-04-2006, 11:23 11581 σε απάντηση της 11575

    Απ: Αποθήκευση ενος structure σε resource file.

     kkara wrote:
    Το λιγότερο που θα μπορούσες να κάνεις θα ήταν στο project να κάνεις reference το project που περιέχει τον ορισμό του struct.


    Τι εννοείς? Στο ίδιο solution πχ να έχω τα δυο projects? Αν εννοείς αυτό, δε δουλεύει.
    Αλλιώς πως να κάνω reference το άλλο project? Ένα exe φτιάχνει κι οχι dll...
  •  05-04-2006, 11:42 11584 σε απάντηση της 11581

    Απ: Αποθήκευση ενος structure σε resource file.

    Αχά... Και τα δύο project σου είναι Windows Applications... Τότε θα πρέπει να ακολουθήσεις την δεύτερη πρότασή μου, δηλαδή να δημιουργήσεις ένα Project τύπου Class Library, το οποίο όταν γίνεται compile παράγει dll. Αυτό το dll θα πρέπει να κάνεις reference στα άλλα δύο project σου...
    Στερνή μου γνώση να σε είχα πρώτα...
  •  05-04-2006, 12:46 11591 σε απάντηση της 11584

    Απ: Αποθήκευση ενος structure σε resource file.

    Ναι, αυτό που λες δουλεύει. Το θέμα είναι όμως ότι έψαχνα έναν τρόπο που να μη χρειάζεται να κάνω κάτι τέτοιο. Θα με βόλευε απλά να υπάρχει το my_struct σαν class και στα 2 project και έτσι να το έβλεπε.
    Anyway, ευχαριστώ για τη βοήθεια.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems