我目前正在构建自己的 WCF 编码器来解析我的消息。我想动态更改发送回复时分配的内容类型,但我无法理解他在哪里寻找它。
他是使用 CustomTextEncoder.ContentType 还是内部编码器的内容类型?我怎样才能强迫他以“text/xml”或“application/soap+xml”的形式发送响应?
先感谢您。
编辑 -只是为了澄清我需要在我的自定义编码器的 WriteMessage 方法中做出决定。我正在使用一个包含请求的内容类型的字符串属性,但他没有正确执行。
public class MyEncoder : MessageEncoder
{
private string _contentType = "application/soap+xml";
public override string ContentType
{
get
{
return _contentType;
}
}
public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
{
...
if (_MY_CONDITION_HERE_)
{
_contentType = "multipart/related";
}
else
_contentType = "application/soap+xml";
...
}
}
不幸的是,当我发送消息时,他仍在分配我的编码器的默认值......