Silverlight не нравится мой WCF MessageContract. Почему?

Я пытаюсь загрузить файл через клиент Silverlight, используя следующуюMessageContract:

[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;
        }
    }
}

Моя проблема в том, что сгенерированный метод операции на клиенте принимает только один аргумент; байтовый массив называетсяFileByteStream, В других (не Silverlight) клиентах, которые я создал, он запрашиваетMemberHeader поля также. Без указания этих заголовков сервер не знает, что делать с файлом. Как я могу установить эти заголовки при вызове операции?

Кроме того, есть ли лучший способ загрузить файл из клиента Silverlight? Это была огромная головная боль.

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос