我试图通过使用下面的一个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客户端上传文件? 这是一个巨大的头痛。
谢谢。