【发布时间】:2012-12-18 21:54:28
【问题描述】:
我正在尝试使用以下 MessageContract 通过 Silverlight 客户端上传文件:
[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 客户端上传文件?这是一个非常令人头疼的问题。
谢谢。
【问题讨论】:
标签: wcf silverlight-4.0