Silverlight mag meinen WCF MessageContract nicht. Warum?

Ich versuche, eine Datei über einen Silverlight-Client hochzuladenMessageContract:

[MessageContract]
public class CategoryClientFileTransferMC : IDisposable
{
    /// <summary>
    /// CategoryID - Category identity.
    /// </summary>
    [MessageHeader(MustUnderstand = true)]
    public int CategoryID;

    /// <summary>
    /// ID - File identifier.
    /// </summary>
    [MessageHeader(MustUnderstand = true)]
    public string ID;

    /// <summary>
    /// Length - File length in bytes.
    /// </summary>
    [MessageHeader(MustUnderstand = true)]
    public long Length;

    /// <summary>
    /// FileByteStream - File stream.
    /// </summary>
    [MessageBodyMember(Order = 1)]
    public Stream FileByteStream;

    /// <summary>
    /// Dispose the contract.
    /// </summary>
    public void Dispose()
    {
        if (FileByteStream != null)
        {
            FileByteStream.Close();
            FileByteStream = null;
        }
    }
}

Mein Problem ist, dass die generierte Operationsmethode auf dem Client nur ein einziges Argument akzeptiert. ein Byte-Array namensFileByteStream. In anderen (Nicht-Silverlight-) Clients, die ich erstellt habe, wird nach dem gefragtMemberHeader Felder auch. Ohne die Angabe dieser Header hat der Server keine Ahnung, was mit der Datei geschehen soll. Wie kann ich diese Header setzen, wenn ich die Operation aufrufe?

Gibt es auch eine bessere Möglichkeit, eine Datei von einem Silverlight-Client hochzuladen? Dies war ein riesiger Kopfschmerz.

Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage