Laden...

System.AddIn, Interfaces und SoapFormatter: Keine Serialisierung

Erstellt von dennisspohr vor 14 Jahren Letzter Beitrag vor 14 Jahren 983 Views
dennisspohr Themenstarter:in
420 Beiträge seit 2007
vor 14 Jahren
System.AddIn, Interfaces und SoapFormatter: Keine Serialisierung

Hallo zusammen,

in jedem AddOn gibt's eine Klasse für die Datenhaltung. Dieser Klasse ist von IAddOnData abgeleitet. Contract, die Adapters und Views implementieren dieses Interface und machen es nach außen zugänglich. Nun versuche ich den Inhalt der Datenhaltungs-Klassen zu serialisieren:


SoapFormatter formatter = new SoapFormatter();
Stream stream = File.Create("C:\\test.xml");

try
{
    formatter.Serialize(stream, addInInstance.Data);
}
finally
{
    stream.Close();
}

Dabei bekomme ich bei formatter.Serialize folgende Fehlermeldung:

{"Die Assembly PicReady.AddIn.Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null kann nicht gefunden werden."}

Wisst ihr, woran das leigen könnte? Ich danke euch!

Grüße
Dennis

4.221 Beiträge seit 2005
vor 14 Jahren

Der Formatter versucht die Klasse PickReady.Addin zu serialisieren (welche unbekannt ist)...

Vermutlich musst Du den Formatter überzeugen nur das Interface zu serialisieren...

Ich würde es mal so versuchen... keine Ahnung ob das so funzt.


formatter.Serialize(stream, (IAddOnData)addInInstance.Data);

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

dennisspohr Themenstarter:in
420 Beiträge seit 2007
vor 14 Jahren

Hallo Programmierhans,

Dein Vorschlag funktioniert leider nicht, trotzdem danke. Hat sonst noch jemand eine Idee? Ich habe bisher nichts anderes gefunden.

Grüße
Dennis

4.221 Beiträge seit 2005
vor 14 Jahren

Erweitere Dein Interface um zwei Methoden für die Serialisierung und Deserialisierung...

Dann stösst Du nur noch die Serialisierungsmethode an und übergibst den Stream... Die Serialisierung machste dann in der Klasse PickRead.Addin.

Direkt innerhalb der Klasse kennt er dann sicher den Typen und das Assembly...

Eigentlich logisch 😃

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...