Laden...

Änderung in Dll wird vom Client nicht akzeptiert

Letzter Beitrag vor 13 Jahren 7 Posts 1.924 Views
Änderung in Dll wird vom Client nicht akzeptiert

Hallo c#-community,

ich arbeite zum ersten mal mit Dll´s und leider ergeben sich daraus auch einige Unklarheiten, denen ich leider nicht allein auf die Spur komme. Also ich habe in meiner Dll eine ExchangeClass definiert:


[DataContract]
    public class ExchangeClass
    {
        Bitmap _screen;

        [DataMember]
        public Bitmap Screen
        {
            get { return _screen; }
            set { _screen = value; }
        }
    }

Diese Klasse habe ich erstellt und als Dll in einem Server-Programm und einem Client eingefügt. Jetzt möchte ich das Bitmap in ein Image ändern. Dies funktioniert auch ohne Probleme im Server. Im Client wird aber ein Fehler gemeldet:
implizite Konvertierung vom Typ System.Drawing.Bitmap in System.Drawing.Image ist nicht möglich.

Was mache ich hier falsch. Hoffe mir kann jemand helfen.

MfG
mirrowwinger

Ps.: Habe die Verweise nochmal geprüft, es wird die gleiche Dll verwendet, allerdings im Server wird erkannt, dass es ein Image ist, im Client nicht.

Hallo mirrowinger,

Wo wird der Fehler angezeigt?
In deiner DLL oder im Code vom Client?

Vermutlich gibt du der DLL im Client immer noch ein Bild vom Type Bitmap anstatt Image mit.
Dadurch kracht es.

Gruss
Michael

Hallo mirrowwinger,

woher bzw. aus welcher Assembly kommt die Fehlermeldung? Für mich sieht das so aus, dass du irgendwo statt Image Bitmap verwendet hast. Geht der Fehler wieder weg, wenn du das wieder rückgangig machst? Wenn ja, liegt das daran.

zero_x

Fehler tritt ausschließlich im Client auf. Habe es jetzt soweit, dass er folgenden Fehler ausgiebt(im Client):
implizierte Konvertierung vom Typ System.Drawing.Image[hier steht Pfad zu meinem Projekt] in System.Drawing.Image[hier steht Pfad zum Framework] ist nicht möglich.
Warum kann er ein Image nicht als Image akzeptieren???

Verschiedene Frameworkversionen auf Server und Client.

Nein alle 3 Projekte (Client, Server und Dll) verwenden das Framework 4.0.

Hallo muss den Threat nochmal aufnehmen, da ich noch keine Lösung gefunden habe. Also möchte ich nochmal genauer auf mein Problem eingehen.

Ich habe ein Server-Programm, ein Client- und eine Dll. Ziel soll es sein, dass der Server ein Bild von einem bestimmten Fenster des Bildschirms an den Client schickt. Habe erstmal als "Dummy"-Funktion einen Screenshot vom gesammten Bildschirm gemacht und möchte das per WCF an den Client schicken. Ich habe mir anhand dieses Tutorials Server, Client und Dll erstellt. Ich erhalte hierdrauf, dass im Client, wenn ich das Bild einem PictureBox.Image zuweisen möchte, dass er einen Konflikt zwischen dem Image in der eigentlichen System.Drawing.Image.dll und dem Image in meiner Dll meldet. Der Auszug aus meiner Dll wo ich das Image verwende ist hier:

namespace HostServiceDLL
{
    [DataContract]
    public class ExchangeClass
    {
        Bitmap _screen;

        [DataMember]
        public Bitmap Screen
        {
            get { return _screen; }
            set { _screen = value; }
        }
    }
}

Zurückverfolgen konnte ich das bis in die von der scvutil erstellten Proxy.cs-Datei. Auch hier wird ein Konflikt bei dem Image von System.Drawing.Image angezeigt. In der Fehlermeldung wird nun daraufhingewiesen, dass das Image aus meiner Dll verwendet wird, was aber schlecht ist, da dieses nicht in der PictureBox verwenden kann. Hab hier mal ein Bild von der Fehlermeldung in der Proxy.cs-Datei gemacht.

Hoffe jemand kann mir sagen, was ich falsch mache und mir helfen.

MfG
mirrowwinger