我已经按照我找到的教程使用 MTOM 实现了原型 WCF 服务。
只要在我的 WCF 服务中接收/返回的任何对象中的数据类型是 byte[],它在 wsdl 中转换为 xs:base64Binary,.net SOAP 框架就会利用 MTOM 并将该数据的内容作为附加 mime 部分中的原始二进制文件。效果很棒!
我的问题是,在我的实际实现中,我正在处理一个我无法更改的模式,它的数据类型为 string[]:
公共抽象部分类 BIN : ANY {
... /// <remarks/> [System.Xml.Serialization.XmlTextAttribute()] public string[] Text { get { return this.textField; } set { this.textField = value; } }
在我的情况下,Text 属性(或元素的内容,当以 xml 形式存在时)将是大型二进制数据,我想使用 MTOM 功能将其作为原始二进制文件放入其他 mime 部分,而不是 base64编码它......这可能吗?