web-service kann nicht serialisieren, die eine Schnittstelle

Habe ich eine Schnittstelle wie folgt:

public interface IDocument : ISerializable
{
    Boolean HasBeenUploaded { get; set; }
    void ISerializable.GetObjectData(SerializationInfo, StreamingContext) { }
}

Gibt es drei Dokumente, die Erben von all dem serialisieren gut. Aber beim erstellen einer einfachen web-service, der nichts tut, wo Sie hochgeladen werden kann...

public class DCService : System.Web.Services.WebService
{
    [WebMethod]
    public Boolean ReceiveDocument(IDocument document)
    {
        DBIO io = new DBIO();

        return io.InsertIntoDB(document); //does nothing; just returns true
    }
}

Bekomme ich diese, wenn Sie versuchen, um es auszuführen: "Nicht serialisieren interface IDocument"

Ich bin mir nicht ganz sicher, warum das ein problem sein. Ich weiß, dass einige Leute hatten Probleme, weil Sie nicht wollen, zu zwingen, Unterklassen zu implementieren benutzerdefinierter Serialisierung mir aber nicht, und bis zu diesem Punkt war es erfolgreich.

edit> Wenn ich die einzelnen webmethods akzeptieren, dass die Objekte, die das interface implementieren, es funktioniert gut, aber das schwächt den Vertrag zwischen der client - /server - (und untergräbt den Zweck, die Schnittstelle in den ersten Platz)

  • Hi wollte mal Fragen was Ihr am Ende machen mit diesem problem. Ich habe ein ähnliches Problem, wo durch ich muss ein array zurückgeben, der ein interface-Objekt via webservices.
  • Ich habe eine Reihe von Dingen: ich landete mit einer konkreten Klasse, anstatt einer Schnittstelle, die funktioniert, aber von dort aus wechselte ich auf ein WCF service. Schließlich dieser ganze Teil des Projekt 'auf Eis gelegt' (Lesen, auf unbestimmte Zeit) für "dringendere Angelegenheiten'
  • Ich habe versucht zu zwingen, serialisieren arbeiten in einen asmx-Webdienst, einschließlich der Schnittstellen in webmethod Signatur aber konnte einfach nicht bekommen es funktioniert, auch mit allen notwendigen XmlInclude Attribute geben. Mein Fazit ist, dass es entweder nicht geht oder ist so teuflisch schwierig und niemand stört.
  • möglich, Duplikat der Warum kann ich nicht setzen eine Schnittstelle in einem .NET-asmx-web-service?
InformationsquelleAutor Steven Evers | 2009-03-18
Schreibe einen Kommentar