我想将以下文本添加到WCF操作的响应主体:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="transform.xslt" type="text/xsl" ?>
这样做的最佳方式是什么?
另一个要求是应该使用操作方法上的属性指定XSLT文件名。
我正在尝试使用IDispatchMesssageInspector执行此操作,但我不知道如何访问MethodInfo以进行操作,以便我可以从属性中读取文件名。
答案 0 :(得分:2)
以下是获取当前操作方法的方法:
var context = OperationContext.Current;
string action = context.IncomingMessageHeaders.Action;
var operation = context.EndpointDispatcher.DispatchRuntime.Operations
.First(o => o.Action == action);
Type hostType = context.Host.Description.ServiceType;
MethodInfo method = hostType.GetMethod(operation.Name);
答案 1 :(得分:0)
最后,我不得不使用自定义的MessageEncoder及其自己的MessageEncodingBindingElement。