我也在这里寻找其他一些主题,但我还没有找到解决我的问题的方法。
想象一下:
我有一个非常简单ServiceContract
的不同OperationContracts
. 其中之一OperationContracts
是一个简单的用例“下载数据传输对象”。
服务看起来像:
...
[OperationContract]
DTO Download(strind Id)
...
DTO 类看起来像:
[DataContract]
public class DTO
{
[DataMember]
public string Id;
[DataMember]
public byte[] Data;
}
当然它很简单而且效果很好,但是我需要byte[]
自己在DTO中分配!
我的代码是框架组件的一部分,它在大量内存限制下并行工作。我不希望 WCF 分配所有 byte[] 并且我不希望 ManagedHeap 再次释放它们。我需要共享和重用所有并行的现有缓冲区。
因此,当我完成序列化时,我将重用服务器端的缓冲区。在客户端,我希望 WCF 读入我的缓冲区!
我尝试了一些使用 ownXmlObjectSerialiers
和 own 的解决方案OperationBehaviors
,但它还没有奏效。
有没有人有任何其他想法?