Έχω φτιάξει ένα σύνολο κλάσεων σε VB.NET (vs 2005), που έχουν την εξής Ιεραρχία :
Interface Service.ServiceA
Public MustInherit Class BaseClass
.
.
.
End Class
Public Class DerivedClass
Inherits BaseClass
.
.
.
End Class
End Interface
Οι παραπάνω κλάσεις περιέχουν μόνο Public και Friend Properties (Set , Get) και δέν περιέχουν καμμία λειτουργικότητα.
Η λειτουργικότητα υλοποιείται σε ένα άλλο σύνολο κλάσεων με την εξής ιεραρχία :
Interface Service.ServiceA.Provider1
Public MustInherit Class BaseClass
Inherits Service.ServiceA.BaseClass
.
.
.
End Class
Public Class DerivedClass
Inherits Service.ServiceA.Provider1.BaseClass
.
.
.
End Class
End Interface
Τα properties στα δυο σύνολα κλάσεων είναι ακριβώς τα ίδια.Η μόνη διαφορά είναι οτι το δεύτερο set κλάσεων (Service.ServiceA.Provider1) Έχει Private μεθόδους που υλοποιούν τη λειτουργικότητα του Αντικειμένου.
Το πρόβλημα μου είναι το εξης :
¨Οταν προσπαθώ να κάνω convert ένα αντικείμενο Service.ServiceA.DerivedClass σε Service.ServiceA.Provider1.DerivedClass το Visual Studio μου επιστρέφει "Value of type Service.ServiceA.DerivedClass cannot be converted to Service.ServiceA.DerivedClass"
Για να γίνει πιο κατανοητό τι θέλω να κάνω , πρέπει να αναφέρω οτι το project είναι Web Service και συνεπώς δε μπορώ να χρησιμοποιήσω interfaces.Επίσης δε μπορώ να υλοποιήσω τη λειτουργικότητα των μεθόδων μέσα στο ίδιο το WebService γιατί θέλω στο μέλλον να μπορώ να φτιαξω έναν άλλο Provider π.χ Service.ServiceA.Provider2 χώρις να υπάρξει πρόβλημα με όσους clients χρησιμοποιούσαν ως τώρα τον Provider1.
Πρός το παρόν έχω λυσει το πρόβλημα κάνοντας assign μια μια καθε Property του ενος αντικειμένου στο άλλο.
Όμως θα ήθελα έναν πιο κομψό τρόπο , και κυρίως να καταλάβω τι γίνεται και δέν παίζει το Explicit convert.
Flougr